Camtasia is pretty good and I use it because of the sheer number of features, but it seriously requires a powerful PC to get decent framerates. it's good for basic screencasting when all you care about is showing a tutorial of doing something (like doing a video tutorial for Adobe Premiere or something), but its framerate is pretty awful on most PCs.
if the program runs full screen, you might be able to use FRAPS to record and then use another program for annotation. FRAPs is an amazing recorder and will look beautiful in native screen resolution. This is what gamers use to record their gameplay because it allows full framerate and the video quality is awesome. However, it doesn't work well in Windows 8 and is flaky for desktop recording. And it will not record Modern apps at all. In Win8, I use FRAPs for full-screen gaming and pretty much nothing else.