You can do SEO by yourself, but there's also a big difference between hiring an SEO firm and just outsourcing some of your work. If you want the whole kit and kaboodle, an SEO firm can certainly do that for you - but it's going to be expensive.
However, you can do your own keyword research and outsource the writing or link building. You just have to figure out what your strengths and weaknesses are. If you don't have time to post on forums or do your own social bookmarking, you can outsource it. Or, if you hate to write, you can outsource your content.
You don't HAVE to do everything yourself, and, quite frankly, most people don't have the time or the expertise to do it all alone.