"SEO companies" are usually very cheap, but you also get what you pay for. Most have no idea what they are doing. Of those that do, half are scamsters, like they will link to your site from their
network. That isn't seo, it's temporary spam.
From what i read, most for hire SEOs make 30 to 60k. The bottom line is, why hire yourself out to do something instead of doing it for your own benefit. For hire SEO really only makes sense if a SEO company works for something like a Fortune 500 company, where the SEO could never replicate the business they are working for.
Go to some of the Forums and see SEOs talking about how they were able to charge "a lot" when they charged $100 an hour.