The programs I use vary from video to video, but I'll tell you pretty much what I use.
on my "Squirt some mayo on it" video I drew all the pictures in Gimp,(pretty much free Photoshop) than I saved every frame individually,(which takes an eternity)than imported them all into a program called MonkeyJam.(which is unneeded if you have something like After Effects or Sony Vegas)
How I animated my latest cartoon "To Many Willies..." was to draw all the pieces individually(arms, legs, head, torso.) in Gimp, then I took them all in Sony Vegas and animated them in there.
However... recently I downloaded a program called Pencil and I never want any other program than that.(even though it has some bugs)if I were to save up enough money for Flash I would use that instead though.
also for lip syncing I use this:
http://sourceforge.net/projects/jlipsync/