I'll start by saying this is in no way, shape or form trying to solicit business. I do not represent any business or company. It's only to try and help a fellow member. With that said...
Being a search marketing specialist (SEO'er), I have to say that there are a lot of companies out there that poorly represent the industry. In general, the ones that reach out to you are likely garbage. Not all are bad and not all are as expensive. Typically, the more competitive the industry, the more time and resources it will take to rank well therefore, costing more money.
A few answers can help you decide if it's worth it for you or not:
- What is the goal of your website? Are you looking to make money with it? Is it for informational purposes only? If you are using Adsense or offering advertising space, traffic and eyes on your site will be very important. Same holds true if you are an affiliate. If you are looking to make money from it, you need to determine if the money you will be making can justify the cost of paying for someone to manage an SEO campaign or you spending the man hours doing it yourself. How many conversions will it take for you to pay for the SEO? (in terms of time or paying someone) How much more money will the site need to earn before you make a profit?
- You have to pick 2 of the 3... Time, money or results? SEO is something you CAN do on your own. It will require a fair amount of time to learn the correct way to do it, then apply it than wait for the results as it's not an overnight process. If you don't have the time, you need to spend money on someone else or another company doing it for you. 99.9999998% of people want results. Now you need to decide if you have the time to allocate towards learning or the wallet to pay a 3rd party.
be done by you. Finding and learning from a trusted resource (like the one Dacula shared, SEOmoz, High Rankings) is essential IMO. Many SEO people still do not know the correct way to optimize a site. They are still stuck in the late 90's with their spammy, dodgy tactics such as keyword stuffing, getting links from directories, etc. Google has been on a quest to deliver quality results to their searchers so the old back door tricks are not working anymore. They are trimming the fat and seeking quality websites to share with searchers.
Overall, you should strive to make your website a viable, solid resource. Earning natural links (think of this as votes for your site.. Site A links to Site B because they like your information) from high authority sites will help you achieve higher rankings. To maintain those rankings, you need to keep your content fresh, unique and updated so new websites want to link to your content.
Unfortunately, its not as easy as it sounds. Knowing how to code your website properly is only part of it. The off-site activities (link building, social media, picture websites, etc.) is where most of your time, money and effort should be spent.
Hope this helps and good luck!