-san is the most common one you'll hear. it's something you tack onto the name of someone you don't know particularly well (in school, work, etc), someone you've just met, a stranger, a friend's parent, whatever. it's just a more polite way of addressing someone your age, older than you, or superior to you in rank.
-kun is slightly lower in politeness, and i pretty much described it earlier. for people our age, we'd use it to address classmates and people our age or younger, and for teachers and older people, they can use it to address younger people.
-chan is a cutesy little addition to a person's name, so it's not really the counterpart of -kun. females usually use it, and add it onto the names of friends they're really familiar with or little kids. i think gangster's use -chin sometimes with their buddies's names, which is even cuter (i don't quite get that). it's basically like a nickname. it's basically <name>-chan or <shortened name>-chan. ie, one of my good friends is named Yusuke, and i could call him Yusuke-chan or Yuu-chan (i choose the latter
). it'd be a little odd if i called him that without being a close friend of his.
-sama is used for people very much superior to you that you have to be extra-polite to, and/or people you respect a lot. so like royalty, idols, etc.
on the politeness scale, sama > san > kun > chan.honorifics thread