SEO has become a big business as companies search for an edge to get their sites listed higher. Considering that the search algorithms change so often it’s not really practical for companies (small companies in particular) to try and keep up with every little change. Instead it’s easier to farm that work out and pay a much smaller fee than hiring a full time SEO guy would cost.
The problem with this approach is that even the SEO companies that do it professionally don’t entirely have it covered. In 2010 Google made 500 changes to their search algorithm, a staggering number that no company could really keep up with. Some of those changes are tiny but you might be wasting money if you hire an SEO company to work on your website. You’re probably better off just making a great site and reading up on SEO for a few days.