What is an MBC, when is one needed, and what are the differences between them ?

An MBC is a Memory Bank Controller. It is required any time time you have more than 32k bytes (256kbits) of cart ROM or more than 8k bytes (64kbits) of cart RAM because the GB & GBC can only access up to this amount of cart ROM & RAM at any one time.

Here are brief descriptions of each MBC. Listed values are the maximum supported ROM & RAM. Many/most carts do not use the maximum ROM & RAM that the MBC type is capable of supporting. For the complete & most accurate differences check here:

MBC1 - 2M bytes ROM/8k bytes RAM -or- 512k bytes ROM/32k bytes RAM
MBC2 - 256k bytes ROM/512 nybbles RAM (nybble = 4 bits)
MBC3 - 32M bytes ROM/32k bytes RAM, Real Time Clock support (not available in all MBC3 carts)
MBC5 - 64M bytes ROM/128K bytes RAM (First MBC guaranteed to handle GBC double speed mode. Other MBCs handle double speed even though there is no guarantee.)
HuC1 - An MBC similar to MBC1 but with InfraRed (IR) transmit & receive capability.
TAMA5 - This is a special MBC that Bandai put out for for Tamagotchi 3 (Japanese). This is the only cart capable of making simple sounds while the GB itself is turned off.