Long term readers may recall my mentioning in my OFDM post that I was going to try and understand MIMO. I think I've made sense of it - and it's completely and utterly mindblowing that the processing power needed to do this exists in something I can buy for under £100.
Described simply, OFDM and related channel coding technologies produce signals of very clearly defined form, which can be arranged such that instead of interfering destructively, they interfere constructively. If I transmit two or more OFDM signals on the same frequency on different antennae (in different places), you can use the information from two or more antennae to reconstruct not just one of the original signals, but both of them. You do this by relying on the fact that each signal has taken a different path to get to each of your receive antenna; in pseudomath terms, if antenna 1 transmits signal 1, you receive "(path loss for path 1) * (signal 1) + (path loss for path 2) * (signal 2)" at your first antenna, and "(path loss for path 3) * (signal 1) + (path loss for path 4) * (signal 2)" at your second antenna. The OFDM signals are set up to include pilot tones, so that you can calculate values for each of the four path loss terms, and thus adjust and subtract to get back the original two signals.
The neat thing is that you don't have to slow down either signal to make this possible; an OFDM signal from antenna 1 at 150MBit/s can still be decoded, even as you add a second OFDM signal to antenna 2 at 150MBit/s.
So, that's how MIMO gives you more speed. How does it give you more range as well? This is a tradeoff - recall that Shannon's limit stops you going infinitely fast over a given channel. However, if I need to communicate between A and B at 1MBit/s, in a MIMO world, I can send two OFDM signals at 0.5MBit/s (with associated range). I can alternatively send two 1MBit/s signals, each of which is 50% ECC data, making dropouts easy to correct. Lots of options here, all of which can help.