I've been doing seo for a number of years now and the relatively new practice is to not use the meta keywords tag at all. It both gives your competition a peak at what keywords you're trying to rank for and search engines no longer use them.

Check keyword density is over
Check content of site is duplicate
Check the HTML errors in W3C checker
Use a fevicon for the site
Use GZIP for compressing the site
Avoid java script, PHP and flash animations from site
Use RSS file for site
Use do follow in Meta tag
Check all the internal links to pages are working

Add an RSS feed and ROR sitemap for the site. Add site in webmaster tool and analytics. Submit sitemap and RSS feed in webmaster. Use fresh content in site and correct keyword density in content of site.

I've used a few programs to help me with that, the one that seems to give me the best results is Ibp. iT looks at your competition "Who already ranks" in the serps and says based on what they like, (Google, Bing, Yahoo) you should make the adjustments to help you rank. There is only one draw back to that approach that I see, while it tells you in a comparisons sense, what you should do to match what they do, it doesn't say how to outrank them, which I think we all hope to do. For example, we all know we need links, but it doesn't say...how many links or the PR pages you needs to do that, that would be useful. Even though you would only know that as of the day you analyzed the site. The next day Google or the other serps could have found more links for that site that they didn't have there the day you looked, so that's why maybe there don't do it. This would still be a useful tool if something existed like that.