These days, you'd better start earlier rather than later. Girls probably between 10-12. Boys, 12-13. It does depend to some degree on how mature they are and how much intrest they have in the opposite sex, but don't be 100% sure that they don't have MORE intrest than you THINK they do. Better to be safe and start early.
I don't really believe in having ONE big "talk", though. More like several dozen small talks, based on what they're mature enough to handle, starting at whatever age they start asking questions... and maybe anywhere from two or three (or a dozen) medium-size talks in their early to mid teens as their maturity and intrests grow and change.
At age 5 and under they don't really need to know much. "Babies are made by Mommies and Daddies and come out of Mommy's tummy" is about all they need to hear. That and maybe "good touch/bad touch" and "stranger = danger".
Age 6 to 8... "Sex is something adults who are married and love each other very much do together, and sometimes it makes babies. It's not something you need to worry about much because you're too young yet."
Around 9 to 11 you can sort of go into some of the clinical, technical basics, and just sort of mention that there are risks to having sex outside of marriage (or whatever you believe, if otherwise), that girls can get pregnant the first time and you can catch terrible diseases that never go away if you're not careful, "so don't do it".
Somewhere between 11 and 14 you're going to need to be kind of explicit, but it doesn't have to be all in one huge overwhelming dose.
I like the concept of "teachable moments". This is when your kid has a question, or a subject comes up and they're actually listening and intrested in what you have to say about it.... possibly because something has happened or they've seen/heard something that makes it relevant to them. These kind of talks stick with them much better than if the parent just picks some random day and time, interrupts the kid in the middle of his or her homework/video game/ TV time/whatever and says "we need to have a Talk". The latter tends to be much more awkward and more likely to go in one ear and out the other.
One thing I've always done though: I never lie to my child. I may tell him something is none of his business, or I may tell him he isn't ready for some level of information just yet... but I never lie. No storks or cabbage patches or other BS. When he asked me if Santa was real (at age 6), I told him the truth: how the real person St. Nicholas began the custom of giving gifts at Christmas and that he was the source of the Santa legends, but no there really isn't a man in red suit with flying reindeer, sorry. :mrgreen: It's a trust thing: he KNOWS that he can trust anything I tell him and believe me.