What is the difference between an "aggregate" and a "multi-output" device? For those who might not be familiar with it, OS X gives us an option to output audio to more than one device through the Audio MIDI Setup utility. As a matter of fact, two options; creating an aggregate device or a multi-output device. What's the different between them? 

I have a mid-2011 Mac Mini, connected to a Dell LCD via (MiniDP - DVI) and a Samsung TV via HDMI (which in turn is connected to an older A/V receiver via toslink). The Mac Mini is also connected to a 2.1 desktop speaker system. Given this setup I managed to get the audio to work, first by creating a multi-output device, then I realised that most guides mention using an aggregate device, which I am not sure I understand what it really is. Is there really a difference, if so what's the right way to achieve audio output through multiple devices?
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.