One thing I've noticed (throughout my career, and by talking to friends in the software industry) is that there seems to be a ceiling on how much you can make as a software engineer at "a company". The exact amount really isn't important, but if you're relying on one company to pay you a higher and higher salary every year, at some point they'll probably stop jumping you up the salary ladder. Or you'll be forced into management to get the bump you want.
On the other hand, if you're a consultant/contractor, you're spreading the money across a number of companies. A company might not want to pay a full-time employee $200k/year, but they won't fret over paying a contractor $150/hr for a few weeks/months of work. The company is happy because, on paper, the one-time payment to a contractor is a lower number, and the contractor is happy because they can jump to the next company after this contract is up. My friends in the software industry who make the most money tend to follow this route. Or, they wrote a Top 10 Paid App in the App Store and got rich that way, but that's a little tougher :)