What is the difference between an "aggregate" and a "multi-output" device?
A multi-output device allows you to mirror audio output to multiple devices at the same time.

An aggregate device allows you to tie multiple devices together to appear as one, single, device with more I/O than any one single device has.

Aggregation has a lot of applications in music production where you might want to use more than one audio capture device at the same time from Logic Audio or GarageBand. To do this, you aggregate devices in to one new, virtual device and access the single device from within Logic.

Some examples might help illustrate the difference.

Example 1: Multi-Output Device

Let's say I wanted to play music in iTunes and have the audio go to my iMac's built-in speakers and my AppleTV via AirPlay at the same time. How would I do this? I would create a new, multi-output device. Assign both my Built-In Output and AirPlay sources to this device and then select it as my output device for audio on my iMac.

Now audio played in iTunes goes to both my iMac's speakers and my AppleTV at the same time -- it's mirrored.

Example 1: Aggregate Device

Let's say I wanted to record 4 streams of mono audio at the same time but all I have are two audio input devices that each have 2 mono streams on them (they're basically stereo capture devices). I could create an aggregate device out of the two devices (assuming their drivers support aggregation in OS X) and use this new, aggregate device in GarageBand or Logic and now, instead of seeing 2 channels of input, I'd see 4 channels of input and the devices would function as one, bigger "virtual device".

It works in a similar fashion for their outputs. They all act as independent outputs on one virtual device.