I this post I am going show how I am doing my screencasts.
First I think about a topic. This is the easiest problem, as my TODO file is full of them.
Then I think about an example how to explain it, write some code, try it out and if it works I'll use it.
Afterwards I log into my tutorial account and start making the screencast, with recording on. It has to be noted that I have no second monitor showing me the code I am supposed to write, so I pretty much write it from memory. With longer screencasts I might have a paper with notes lying next to me. It is normal that at the first 3 or 4 tries the record will end with [insert swearing word here], because I made a mistake. Whenever I do a mistake, I start all over. I'm no fan of cropping the screencast because it's a lot of work and the output seems odd sometime.
So then after some tries I found out which words I need to look at to pronounce properly(I'm no English native speaker) and which code I need to take care of so I don't get a mistake in.
Once I did a recording that I am comfortable with, I extract its audio using mplayer, amplify it a bit, remove some background noise, et cetera. Then I put it back into the video and encode it using XVid. Then my screencast is done. I upload it to ShowMeDo and wait for people to comment on it.
That's how I do it. It might seem like a bit odd approach, but I think it works out. In my opinion you just have to try it a few times in order to get similar output to what long preparation would get you.