In my experience you should handle SEO yourself. Most of these guys are a joke (but not all). There are a couple of alternative strategies SEO's use like hot beds, link farms and other white-hat / black-hat techniques... however, most of this stuff is on Google's checklist to weed out over time as there jeopardize the integrity of AdSense too. And quite frankly, if you have to stoop this low you shouldn't be in business.
One of the most important things is getting linked-to by respected sites (ie: TechCrunch) and amongst the web (PR releases but do these sparingly). It's in this dimension that page rank within search results are determined these days, a natural filter to all the crap! This is key reason why spam bots dump responses filled with links on blogs and popular sites like Digg/etc... Bastards!!
However, it's still in good form and highly recommended to continue using UNIQUE meta tags, page titles, alt descriptors, etc...
And, there are valid white-hat techniques to consider, especially if your site is entirely flash/flex or graphic-heavy in nature. An example of this is delivering GoogleBot an alternative page that your visitors do not see which describes the site's content by way of traditional markup. Mismanaging this can quickly put you in the blackhat bucket.
Sitemaps are also important and I don't see enough sites trending to spider's preferred structure: sitemap.xml. Drupal users are in luck as there is a plugin to handle dynamic generation of the sitemap to spec, and submits it to Yahoo/Google/Live spiders each time your content changes. But if you don't use Drupal, just google "sitemap.xml" and you'll find out all you need to know.
Speaking of Drupal, search engines absorb it like a sponge; it's soo well built for SEO. <3 :P
I second the "do it yourself" process. You'll learn a lot from it and nobody but you truly understands your business like you do. It's not rocket science, but it can be hard work getting the inbound links. The first priority is definitely to work on making sure that your pages are friendly, that your title tag, alt tags and text in the pages is relevant. Good content, put together well always helps
Not my site, but I came across a pretty big "SEO checklist" page a couple of days ago that I bookmarked. I'm not sure how accurate the information is, but it's worth a look if you're interested (and can get by the ugly design):
run a search on Yahoo.com for site:your competitor's sites, or people who rank highly for the keywords you want to rank highly for. Look at the inbound links coming to these sites. Figure out why the site that links to your competitor should also link to you, and then tell that to the site owner.
The biggest grey hat SEO technique right now is "articles." You write or have written articles about some topic relevant to your site. You upload these articles to article directories, with the terms that the article must include certain links back to your site. People trying to get content on their site repost your article, and you get links to your site.
Just like their are varying degrees of skilled programmers, their are SEOs across the spectrum of skills and experience.
It's not hard to learn the fundamentals of SEO yourself. Incorporating the best practices from the start is what is challenging for most, and dedicating the time to doing it right.
Head over to SEOmoz read the Beginners Guide to SEO and once you got that down, they have many more articles to guide you.
I think one of the best things you can do if you're committing to major SEM is put out an RFP. The responses can not only save you money but give you some valuable insight into the company's workings and strategy which can be just as valuable as any cost savings.
One of the most important things is getting linked-to by respected sites (ie: TechCrunch) and amongst the web (PR releases but do these sparingly). It's in this dimension that page rank within search results are determined these days, a natural filter to all the crap! This is key reason why spam bots dump responses filled with links on blogs and popular sites like Digg/etc... Bastards!!
However, it's still in good form and highly recommended to continue using UNIQUE meta tags, page titles, alt descriptors, etc...
And, there are valid white-hat techniques to consider, especially if your site is entirely flash/flex or graphic-heavy in nature. An example of this is delivering GoogleBot an alternative page that your visitors do not see which describes the site's content by way of traditional markup. Mismanaging this can quickly put you in the blackhat bucket.
Sitemaps are also important and I don't see enough sites trending to spider's preferred structure: sitemap.xml. Drupal users are in luck as there is a plugin to handle dynamic generation of the sitemap to spec, and submits it to Yahoo/Google/Live spiders each time your content changes. But if you don't use Drupal, just google "sitemap.xml" and you'll find out all you need to know.
Speaking of Drupal, search engines absorb it like a sponge; it's soo well built for SEO. <3 :P