I love UnitTest++. It's really easy to set up, and writing tests is easier than with the typical favourite, CppUnit. Each test has very little coding overhead so you're more likely to write them!
As for what I test, I tend to test the public interfaces of classes, but if I'm just doing some refactoring and splitting things up into smaller functions I won't write a set of tests for each of those functions - they should be covered by the tests testing the public interface. As long as the public interface works according to the tests, all is well in the world.