Search engine optimization has often been called both a science and an art. The basics of SEO are simple. The intricacies of SEO are complex. Anyone with average intelligence and plenty of time can learn to optimize their web pages. The key factor here is time. It takes time to learn not only the basics of SEO but also the many ever-changing "rules" that will not only raise your ranking in the SERPs, but also prevent your site from being banned. You can learn from SEO books, or from participating in SEO forums. Some webmasters may have the time to learn it on their own, and if so, then do-it-yourself is a viable option. Consider the fact though, that it can take many months of diligent study, application of lessons learned, and tweaking the results to accomplish your goal. If your website is commercial in nature, you may not have the time to devote to this.
An SEO expert can offer SEO services that will result in much quicker results. If you decide to use an SEO company, it is vital that you do your homework when choosing one. Just as in every business, there are reputable SEO companies, and there are those who specialize in hoodwinking their customers. Learn just enough about SEO to be able to ask the right questions so you can get beyond the sales pitch. Be sure to read Google's own statement regarding Search Engine Optimizers at http://www.google.com/webmasters/seo.html. Follow the advice given there and you will be less likely to fall prey to unethical companies whose only goal is to rob you of your money.
A respectable, ethical SEO company can definitely improve your search engine rankings. If you don't have the desire or the time to devote to do-it-yourself SEO, then do your homework, ask the right questions, and hire an SEO expert.