One idea you might consider is trading services with the SEO company you choose to use. It probably won't work with bigger companies, but if you find a good company with a small operation, you could offer to do their lawn in exchange for SEO services.
The company we use is a small 3 person operation. I met the owner at a Local BNI event. We have it worked out so that they handle every aspect of our SEO. They charge around $250 a month for the package we have, and because of the owners yard size, we still make an additional $75 a month from it.
Were approx 6 months into the service and I can honestly say its worth every penny we pay. We've easily made our money back and then some. You just have to look at SEO as an investment. It takes some time for you to break even, but once you do you'll be glad you did.
Here's the link for the company I use. http://www.fusiononemarketing.com/
Nicest people I've ever met.