Let's start with the answer for the market in general - the cost is about £350 / $500 for the front page of a simple five page site which should buy you:
Note that your home page usually contains content (such as the menu and footer bar) that is repeated on other pages so the home page carries the greatest SEO cost.
Now while this is called optimising it is actually more about stopping your site being penalised for not reaching "Ground Level" as we call it in our how to seo your website guide.
From here on in there are no limits on cost with some companies spending hundreds of thousands but in general it should always be remembered that much depends on your competition and what they are doing.
Beyond cleaning up your code and making it altogether easier for the search engines you can pay an SEO company to do any of the following which will help your site's performance.
The cost of these actions greatly depend on the size of your site and the scope of the work (e.g. how many articles you want written) so it truly becomes "as long as a piece of string".
Again it is difficult to be hard and fast because time depends what you are trying to do. When this article was written there was no competition for "Wibbles Flower Shop" so if you purchased the domain www.wibblesflowershop.com and made a website you would probably be number one for this key phrase within a few days.
Thus many "guaranteed results" services promise you they will make you "number one for your company name" within a specific time frame - say three months. Most of the time that really is straightforward but see what they say when you tell them your company name is "Laptops for sale"!
The more competitive the keyword or phrase the longer it will take or the more aggressive you have to be in terms of time and resource. For a medium competitive keyword you can focus large amounts of time and resource and you can get your rankings.
Within Google Ads there is a keyword tool which will tell you how many people search for a certain phrase every month and how much competition there is for it (from advertisers). This is a good starting point because if people are fighting over advertising spots for a keyword, they are going to be doing even more to get the top spots of the organic search.
So to be number one for "Laptops for sale" is going to take a great deal of time, potentially months, and/or resource (which means cost!). However it is not a blind process. You can follow how your site is improving via Google Webmaster Tools and make changes accordingly.
But what if you need to be top of "Laptops for sale" right now? You have after all got a business to run. Well the best move is not to go head on with the already established companies but consider a keyword phrase that has been ignored such as "london laptops for sale".
By the way - For clarity I'm not saying that keyword phrase "london laptops for sale" has been ignored, I'm just using it to explain a point.
There are many services with a fixed cost for fixed services but really you should be looking for a company that will carry out the right service for your site. Otherwise much of the cost can be for SEO you don't actually need
When it comes to time much will depend on the competition for the keywords or phrases you have chosen. And the time factor on day one can change if the competition also start carrying out more SEO of their own.
I'm Tim Hill, a Search Engine Optimisation and Online Marketing specialist. I created this site to help others understand that SEO is not a mysterious black art!.
If your a newbie try the Getting Started in SEO page, otherwise feel free to dig around and learn more.
Find me on Google+ or get a quote if you need help.
On twitter at @doodledin.
On LinkedIn at Doodled.
Yahoo Answers: Doodled.
On SEOChat at Doodled.
On Facebook at Doodledin.