I would say the primary things you want to look for are a decent history (for example has been in business for more than 5 years), has a portfolio of clients for you to look at and lots of references. You are right that prices are high because in general, SEO is a very time consuming and specialized task. Not a lot of people know how to do it well and it takes a lot of footwork and perseverance to be successful.
With that in mind, remember that you get what you pay for. You may very well be able to find someone on elance or one of those sites that will do good work but do your homework. Make sure they know what they are talking about and that you can get AND SPEAK WITH references. There are tons of people out there promising the moon for next to nothing and they can’t deliver. That doesn’t mean paying someone an arm and a leg means you are getting good service but reputable agencies charge a lot of money for a reason; they are good at what they do and they can deliver results.
I’m not sure if you are looking for someone who is local to you but I can recommend two businesses that I know have a good track record however they are expensive.
Hope that helps,