With good SEO and lots of invested time you will be able to beat your competitors.
First I would advise you to do a research on your competitors’ websites. See what keywords they are using. Google’s Keyword tool is great for this! They have an option where you can enter the URL and it shows you all the keywords for that given website.
See the design, try to figure out why they are ahead of you. What I noticed if your competitor is coming up on the first pages of Google with your main keywords they probably have lots of content, mostly text based websites and very relevant. They have been around for a while and their domain won’t expire soon. Their website probably loads faster as well. They are well optimized, usually clean websites. This is why they are ahead of you.
Try to rise above your competitors, think of other keywords they are not using, make your website cleaner, smarter. Create more content, add a blog, if it’s possible add a forum. Create a keyword rich content for your site.
The best for SEO if you find directories with a higher page rank. Distribute press releases, write and submit articles, get involved in other people’s blog, create videos with relevant keywords.
Good SEO takes time but it’s well worth it.