There seems to be quite a bit of confusion on when to use what. This is what I gathered:
San: Means Mr. or Mrs. You can use it for either gender.
Chan: Used for children, particularly little girls.
Kun: Used for small kids, particularly little boys. Same as -chan.
Sama: Very formal title and not used that often. It's reserved for very important person.
Sensei: Teacher. Used for any kind of teacher or instructor.