I do SEO myself and outsource parts of the whole SEO process since SEO has many facets for just to be let done by someone else If you have a rough idea of SEO then you can go to hire someone who is professional, if you dont know the basics then it is better to learn them first and then go for hiring, since fleecing someone who is not aware of the technicalities is very common in this industry
Follow Matt Cutts' advice and you'll never be found in the search engines Many people call themselves SEO experts when in reality they've still got a lot to learn. Proof of this is people asking quite basic questions on this forum and they link to their own company website in their sigs which advertises SEO services It's quite easy to pick up SEO and then you can either do it yourself or at least have enough knowledge about the subject to figure out which services you need and who to pick should you decide to hire someone to do it for you.