Jeff Whelpleyoffers some great advice. Most advice will be an overview and "theory" based, I will try to provide more application.
When you look at SEO, try breaking it down to 3 difficulty categories.
A. High Competition
B. Medium Competition
C. Low Competition
Amount of time required to rank depends which category this falls into. For the majority of keywords and niches, Google has a different rankings signals depending on difficulty. I will give a general breakdown.
Low Comp - Google relies heavily on links, on-page, user metrics and on-page. If optimized accordingly, you should be able to rank for low comp in 1-4 months. 1-5 links go very far here.
Medium Comp - This is where it gets a little a tricky. There's a lot more factors in play. If your website is new it will take at least 6 months to have a shot at top 5 in medium comp. If your website is aged, has some authority it can be done relatively quickly.
For a lot of medium to medium-high keywords, an invisible "authority wall" exists. What this means is that your content looks good, site looks good but its not "authoritative" enough to be placed on the first page. Your keyword will sit on the 2nd page, roughly around 15-18 and will seem to just stabilize around there.
Once you smash through the authority wall (Get some authority links), you will land at the bottom of the first page or top of the 2nd. That's when you know you have a shot at the top 3!
High Comp - This is an area where very little expertise exists. It's an entirely different beast to rank and there's even specific algorithms for high comp niches. The key here is user-engagement combined with links/social signals. User metrics trumps most other signals in the high comp keywords once you break onto the first page. Links are weighted a lot less in most cases.
Getting into the top 3 of medium-high to high competition keywords relies heavily on user-engagement. The trick is to really focus on getting to 7-9th then focusing on user-metrics (bounce rate, time on site, CTR etc) while steadily building a flow of links. This can take some while, as little as a 2 weeks to as much as 6-12 months.
To go back to your original question.
Where is your site currently ranking for your target keywords? Is it on the 3/4page or is it not even in the top 500?
If your site is currently ranking 3 / 4 page for your main keyword, this is a typical timeline I use for my clients.
Low comp = 1-3 months for top 5
Medium comp = 2-6 months for top 5
High comp = 6+months and unable to gauge.
Feel free to mail me your site/keywords and I can take a look for you.
Hope this helps,