What I've learned about SEO is it's fairly easy (just takes a lot of research) to become good at it. To become an expert is a whole other ball game. If you're just trying to seo your site in a soft digital marketplace, I'd say do it yourself. If you need some serious firepower to get to #1-3, you may want to bring in someone credible. It's very easy to spend a ton of time on SEO and not see the real results you're hoping for. A "real" expert will know what you're doing wrong. But again, if you're competition is soft digitally (low backlinks, low content, low page ranks, etc.), do it yourself.
Hey hold on, there a lot of good prople in seo. There is good and bad in everything. Ther is no silver bullet. You have to work to find someone you trust.