Hard drives have traditionally had much more storage space than removeable media (this is generally still true today). The earliest PCs had 5 and 10 megabyte hard drives available, this was in contrast to the common 360k 5.25 inch floppy discs at the time. Because of this, some have found it useful to logically divide portions of a high-capacity storage medium into smaller partitions. All modern operating systems are capable of presenting each partition as a separate volume or "drive" to the user and applications.
Windows, for example, will give each partition its own drive letter, making it "logically" appear as though you have multiple hard drives (the Windows technical term for what the drive letters refer to is a volume - and one volume can live in a partition). Linux and other UNIX-like systems will give each partition it's own block device in
On PC's, partition tables have been traditionally recorded using a small table in LBA (block/sector) 0 (the very beginning) of the device called the Master Boot Record, or MBR mbr. The MBR has only room for 4 partition entries - so a scheme to allow more partitions was devised that allow any of those entries to be an extended partition, which points to more partitions (the original type is called primary.)
Some operating systems have limitations on which type (and sometimes even size or offset) of partition they can boot from - most DOS versions, for example, can only boot from a primary partition within the first 2G of the disk. Modern operating systems such as newer Windows or Linux versions aren't too picky.
One limitation of the MBR is that it can't point to a space on the disk greater than 2TB. Because of this, a new method of recording partitions was developed called the GUID Partition Table gpt. It works a bit differently than MBR and there is no "primary"/"extended" scheme. GPT supports 128 partitions. (GPT is part of Intel's UEFI uefi spec, a BIOS replacement.)
Older (pre-Intel) Macintosh computers used a scheme called the Apple Partition Map.