LEGO Digital Designer (LDD)
For all the people that own some form of LEGO Mindstorms, here is some GREAT advice for you. We use a virtual designing program to design all of our LEGO ideas. The name of it is LEGO Digital Designer. LEGO Digital Designer allows its users to virtually design all of their robots/creations. Then, it generates instructions so its users can build their creations. The only problem we have with this program is that it is nearly impossible to design gearing systems with it. Other than that, it is a great way to plan out your potentially AWESOME creations!
If you are interested, here is the link to the downloads page for LEGO Digital Designer.