It's a very difficult question. They are generally mean Mr., Mrs., or Miss in English. Since Japanese language needs to read circumstances where you are in, a Japanese native naturally should know which one to be suffixed, however, even a Japanese, he sometimes misuses it and makes someone upset. There's a sort of rule which is already explained by some answers, but they are sometimes irregularly used. That's why, even for a Japanese, he sometimes misuses. "Sama", "San" and "Chan" are same origin. "Sama" is the original and "San" has a change in the end of the word. Then, for an infant, it's difficult to pronounce S sound, so S changes to T or Ch. As some answers explained, "Sama" sounds relationship far and it chooses the situation to be used. It's used when a customer, client or guest is called by a shop clerk, secretary, receptionist and so on. Nowadays it's seldom used in other situation except in writing. "San" is more commonly used in conversation and generally it doesn't upset anyone. In a school " San" is mainly used when you call a female or you call a person who is higher grade. Then "Kun" is used when you call a male in a school. However, out of a school, it is not really choosed by sex. It can be used whether a person who you call is higher in status or not. However, as other answer explained, when you call a higher person, his/her position is more likely suffixed. "Chan" is originally used for infant. So it's can be used in a family, close friends, a group, or similar to such relationship. And also, generally, a person who you call should be equal or lower in status. "Kun" is a little bit complecated. However, as other answer explained, it's generally used when you call a person who is male in sex, equal or lower in status. However, when you watch telecast program of Perlament, you can hear "Kun" when the chairman of perlament calls a congressman. If a person who is really close in relationship and equal or lower in status, you can call him/her without such a suffix. But if you are not so confident, "San" is recommended. There are some tacit rules inside a closed group, however, for non-native Japanese, you'll be allowed even you mistake. There are some others like "Dono", however they are seldom used in conversation.