That's a hard one to say. The real answer should be how much is it worth to the client but these days everyone expects everything for nothing or as a close as.
I currently have 24 sites I SEO for and I charge each <Price deleted by self> per month which I think is a great price because I have almost all of them at number 1 for the keywords they wanted.
As for timescale that all depends on how much effort you have already put in with other sites. I'll try to explain:
I have a huge number of sites I run. One of them is updated daily so SE's cache it often because it's updated often. If I add a new site onto that page it is normally indexed within a day or two, sometimes quicker. I also have 3 dozen PR5 and PR6 web sites that I also link to it. The result is almost instant nice PR web site and goes straight in on the search engines normally page 2 to 7 to start with.
Next comes link exchanges. If it hasn't already got to page 1 it will do after 4 to 8 weeks of constant link trading and a couple of other tricks I can't mention.
I spend 2 hours a day, 7 days a week link trading those 24 web sites. I can normally get 150 links the first day and then over the next two months take that up to around 500 links. By that time it is well crawled, nicely PR'd and established enough to be at the top or near the top.
What I don't promise is great rankings for 1 word searches like "holiday" but will get them to or near the top for something like "holidays in <country>" or "camping in <county>" etc etc.
I have spent 6 years building up these sites so I have a firm and solid base to start new sites with.
SEO is not an easy game and you can't afford to take risks. I manage just over 100 web sites and not a single one was affected by the Flordia update. I don't cheat the system but I push as far as I think I can get away with and so far I've got that happy medium.
If you're starting off with no background or sites to help you then I would expect 4 to 12 months to really start going.
With your first client see how long it takes you to get them where you want them.
From then on add a least a month to the timescale. I say to all my clients give me 2 months but then surprise them after 3 to 5 weeks with the results. They love that kind of thing :)
<edit> Removed price, started getting emails lol - I was answering a question not advertising myself. I don't take on other peoples sites. I build my own web sites around the SE's so no emails please, it doesn't work that way :)
[edited by: simonuk at 11:30 pm (utc) on Dec. 18, 2003]