There are only two ways to get a top ten ranking and they both involve a lot of work, knowledge and effort in order to accomplish. Many companies claim things and no legitimate company will get you anything for that price. The time alone is worth a lot of money and someone would have to be crazy in order to GIVE their time to you to work on YOUR site.
Learn SEO yourself and perform it on your own site. There are many guides, tutorials, forums, blogs, write-up’s etc. on the subject of SEO/PPC/Link building (they are all kind of related). There are many people who have been able to get good ranking by learning SEO and promoting their own sites.
Hire an SEO professional to either do it for you, help with only some parts or just consult you on what would be best. Hiring an SEO company or individual can be costly compared to learning it yourself (some SEO’s get 10,000 or more per site, some charge even more). Many of the best companies are able to get high dollar amounts for their services. You can find certain individuals who can also do the job as well as smaller companies or less known ones. There is no way to guarantee rankings on good keywords, so be weary of any SEO offering a promise or guarantee. Hire one who can show you other sites they have achieved ranking for and of course make sure their site(s) ranks.
My advice, do the simple things yourself and if you feel you can handle learning more, and you have the time, then go further with your own strategy. If you cannot perform the required tasks and you are lacking time to get the job done it may be worth your while to recruit help.