Here's another article discussing git add -p: http://blog.tplus1.com/index.php/2008/10/31/break-up-changes...
Nice. Too bad I'm on svn. Though I suppose you'd want to be really careful about not creating a commit that's broken, e.g. by overlooking a declaration. Can you easily check whether currently staged changes still compile and/or pass a test?