That depends largely on your OS and your budget.
"Screen" means, that the software has the capability to capture your desktop, with different windows etc. (e.g. while you're programming).
"In-Game" means, that the software hooks itself into DirectX or OpenGL and reads the back-buffers of your graphics card, thus reducing CPU & GPU power and giving more resources to the game itself.
LinuxWindowsName | Capture | Price | Description |
Open Broadcaster Software | In-Game & Screen | Free | Very powerful, you can record locally or stream e.g. to Twitch, use as many overlays as you want. |
PlayClaw | In-Game & Screen (Win7) | $17.77 - 47.77 | Nice UI, good quality and lot of options |
Dxtory | In-Game | ~$36 | Solid UI, very good quality and even more options. |
Fraps | In-Game | $37 | Widely known, but a bit outdated software, lacks quite a few options. |
MacName | Capture | Price | Description |
QuickTime | Screen | Free | No idea, just googled to make this list more complete. |
I guess the table could go on even longer, but those are the only ones I've ever tried/still use.
Since I've once bought PlayClaw (when it was cheaper), I'm using it from normal in-game capturing, with the newest version 5, the UI is rather usable again as well.
If I'd got the chance to go back in time, I'd probably now buy Dxtory, since it has a more solid layout and better options.
If I want to screen-cast something, I'm using OBS since there just isn't anything else that could beat it. If they'd add better audio source managing and possibly allow the use of different codecs, I'd wouldn't need anything else beside it.