Not insulting you, rubidoux, but this scenario is one reason I think it needs to be introduced young.
I have always thought when they ask, but my now 8 yr old has not asked yet and I'm starting to get antsy. He's not going to, I'm pretty sure. So I'm not sure when or what to tell him. I am wishing that I had talked to him about it when he was four, but at four, when he also was not asking, it didn't seem so appropriate. But at that age it seems less loaded somehow, like its just this weird foreign thing they may do in some other lifetime, not as personal to them.
I have talked to him about women having their periods, and related that to pregnancy, but not really sex. I'm pretty sure he's forgotten it though. And since I got pregnant when he was almost five, after I got AF back I kinda made a point to not have him in the bathroom when it'll be obvious. So I doubt he'd remember.
DD had learned the very, very basics at two when I was pg with DS. We didn't talk about it a lot after I was no longer pregnant. So, two years later I went through "It's So Amazing" with her. DS, meanwhile, was getting ongoing information. At 4 he was able to give a very basic explanation of sex. BUT, this conversation is one we had when he was 7ish.
DS: I just don't understand sex.
Me: Basic explanation
DS: I still don't get it.
Me: Basic explanation again.
DS: I just don't get it.
DD: Do you mean how it's gross?
DD: Apparently it will make more sense when you're older.
It can be hard to know exactly what a child is asking! There is no way that DS would have willingly brought up sex (in a questioning format) when he was "older" and I really want him to have the information. Now, at 10, it is much harder to get him information because he just doesn't want to talk about it.