One of the best screen recording programs for Mac is
Screenflow, but it is not free.
If you want to go cheap then you can use Quicktime to do screen capture. This application comes with all Macs. It will allow you to capture video and audio from a Microphone ( internal or external), but not the system audio. Under the file menu > New Screen Recording.
However there is a way to record system audio as well.
Soundflower allows you to route system audio into Quicktime.
Install Soundflower--
http://cycling74.com/products/soundflower/ (instructions for use) and
http://code.google.com/p/soundflower/downloads/list (application)-- to add system audio (core audio) inputs to the line-in and microphone options already present in QuickTime Player (i.e., QuickTime 10). Once it's installed,
1. System Preferences > Sound > Output. Select Soundflower (2ch).
2. Open QT and begin a New Screen Recording. In the Screen Recording window, click the dialogue triangle on the right. Under Microphone, select Soundflower (2ch).
3. Begin your screen recording.
Note, however, that you won't be able to hear system audio while using Soundflower as a QT input--the audio that was going to your speakers is now going into QT instead. When you finish your recording, go back to System Preferences > Sound > Output to route the audio back to Internal Speakers or your usual default audio output.