Here is a quick 10-point checklist of things to consider if you are not ranking well in the SERPs. If any of these look like they may be a problem, do some research if necessary and solve the problem.
1. Is my on-page optimization taken care of?
2. Is my site too new? If so, patience...
3. Do I have a sufficient amount of backlinks to my site that utilize my keywords as anchor text? (Compare to competitors).
4. Do I have at least a few backlinks from the most well-ranked directories in my subject?
5. Are all my backlinks coming from just one or only a few sources?
6. Do I have any cross-linking problems between my sites?
7. Do I have any duplication problems either between my sites or with other sites?
8. Has anyone hijacked my site?
9. Am I linking to any bad neighborhoods?
10. Do I have a redirect problem?