The two categories of meaning for "se" are the reflexive (yourself) and the reciprocal (each other) meanings. As we should know, we only use "se" when we’re speaking in the third person, and we use other unstressed pronouns with the first or second person.
For example, comparing "él se lava" with "yo me lavo", the reflexive pronoun is contrasted with the non-reflexive pronoun in the third person. The first phrase, "el se lava" means he washes himself, while "él lo lava" means he washes him (where this him refers to a different person).
These kinds of unstressed pronouns, in general, should be dealt with in another article, since some issues such as their placement (after the verb with infinitives and gerunds: "lavarse", "vistiéndose") can pose some other problems. For now, you may reference the Wikipedia article on Spanish pronouns.
Reflexive or Reciprocal?
A sentence using a reflexive pronoun such as "se" in the plural can be ambiguous as either reflexive or reciprocal: "Ellos se miran." can mean both, "they look at each other" or "they look at themselves" (in the mirror, for example).
To make it unambiguous, you add a sí mismo (a mí/ti/sí/nosotros/vosotros mismo/a(s) ) for the reflexive meaning. Add el uno al otro (if it's two people) or unos a otros (more than two people) for the reciprocal meaning, with other possible gender variations (la una a la otra, unas a otras, and so on if the subject is feminine plural). So, we say "Ellos se miran a sí mismos." and "Ellos se miran el uno al otro." to distinguish both meanings.
There is a "fake se". "Le/les" is substituted by "se" when there are two unstressed pronouns in a row. "I give him it" should be translated as se lo doy (not "le lo doy"). It isn't a real "se", but rather in this case, this “se” replaces "le" or "les", and it has a "le" or "les" meaning.
(Idomatic) Reflexive verbs
In Spanish there are many reflexive verbs. Those verbs are conjugated with an unstressed reflexive pronoun even if the construction is idiomatic, and there might be no real reflexive meaning. Actually you also find this phenomenon in English to a lesser degree. For example, in English we use the phrase "to enjoy oneself", which could be divertirse, disfrutar or pasarlo bien in Spanish (some possible translations are also "reflexive" in Spanish, but most of them are not). There is no real reflexive meaning in "to enjoy oneself", but it's still an idiomatic reflexive form in English, and in that same way, there are tons of reflexive verbs in Spanish.
Purely reflexive verbs
Sometimes the verbs are purely reflexive; there's no non-reflexive counterpart. That would be the case for “atreverse (a)” (to dare), "resfriarse" (to catch a cold) or "quejarse" (to complain).
But, generally a verb has a reflexive and a non-reflexive use. Sometimes, the difference can seem random and puzzling, such as in the case of "posarse" (to perch, to alight -as a bird does-) and "posar" (to pose, to sit -as a model does-), or "comportarse" (to behave) and "comportar" (to entail), but you can still find some useful patterns.
Intransitive counterparts of transitive verbs
You will often find that a transitive verb (a verb requiring an object) has an intransitive counterpart (not requiring an object) that is reflexive. It often happens that there's no change in the verb in English, although that change in meaning is easy to see. That would be the case in "abrí la puerta" (I opened the door) and "la puerta se abrió" (the door opened -spontaneously - like those you see when you enter the supermarket) or in "rompiste el espejo" (you broke the mirror) and "the mirror broke" (el espejo se rompió).
Passive Form (in English translations)
In other similar cases, a passive form or a "get + past participle" or "become + past participle" form is sometimes used in English where a reflexive form is used in Spanish. That would be the case of "venderse" (to be sold)/"vender" (to sell), "dañarse" (to be/get damaged)/"dañar" (to damage), "aburrirse" (to get bored)/"aburrir" (to bore -someone-), "cansarse" (to get tired)/cansar (to tire -someone- out) and many other examples. Sometimes, totally different verbs or constructions are used in English, even if you can spot a similar change in meaning: "levantarse" (to get up/to stand up)/"levantar" (to lift), "sentarse" (to sit down)/"sentar" (to sit -someone somewhere-, but also "to suit").
In a few cases, reflexive verbs have an inchoative meaning: they are used to speak about the beginning of an action. For example, "dormir" means to sleep and "dormirse" means to fall asleep. "Subir" means just "to go up" and bajar means just "to go down", but subirse means "to get on/in" (a car or a bus: "subirse a un coche") and bajarse means "to get off" (a bus, for example: "bajarse del autobús").
With a few verbs such as "comer", "beber" and "leer", a reflexive pronoun ("comerse", "beberse" and "leerse") gives a telic meaning. That means the action is considered as a process with a beginning and an end, and it's considered that reaching the end is intended (as opposed to not considering the end of the action).
When you say "I'm eating a cake", you say, "Me estoy comiendo un pastel" if you intend to eat the whole cake. If you just say "Estoy comiendo un pastel", you might intend to eat it all or not. Or, maybe you don't care, and you just want to nibble at it; you don't state anything about ending the action.
It's the same with "I'm drinking a glass of milk" ("Me estoy bebiendo un vaso de leche" or "Estoy bebiendo un vaso de leche") and "I'm reading a book" ("Estoy leyendo un libro" or "Me estoy leyendo un libro" if you do intend to finish it). Sometimes, you can use some particles that convey an ending of the action to translate that into English ("to eat up", "to read through"), but these reflexive uses are more common in Spanish than those English particles are.
Ir / Irse
The difference between "ir" and "irse" is very simple. "Irse" always involves a departure or going away (it means "to leave" or "to go away"). What makes it tricky is that the difference is not always expressed in English. In English, we only sometimes use "to go" when departure away from the current place is important, but in Spanish we always use "irse" in those cases. For example, when we "must go" because we're busy and cannot be doing something in the place where we're talking to someone, we always use "irse" in Spanish, because what we mean is that we cannot stay and we must leave that place. Telling someone to "Go home" would be "Vete a casa", if what we want is to get rid of that person and not just giving some advice (then it could also be "ve a casa").
Parts of the body
An unstressed pronoun (indirect object) must be used when a part of something is the object of the verb. That's especially the case with parts of the body (usually the body of the person who is the subject), and then you don’t use a possessive adjective as you would in English. You don't usually say anything similar to "I wash my feet", "I saw your face" or "I touched your nose" in Spanish, even though it technically would be correct ("lavo mis pies", "vi tu cara" and "toqué tu nariz"), because it doesn't sound so natural or so common. What you would usually say looks more like, "I wash myself the feet" (Me lavo los pies), "I saw you the face" (Te vi la cara) and "I touched you the nose" (Te toqué la nariz).
The pronoun must be reflexive when it's something done to one's own part of the body (in that case, it must be a reflexive "se" if it's the third person), for example "He washes his (own) feet" would be "Él se lava los pies". "Él le lava los pies" would be when he (Él) washes his ( le - somebody else's) feet".
This construction can even be found when the part of the body is the subject with verbs expressing sensations such as pain, itching and so on. In those cases, the subject often comes after the verb: "Me duele la barriga" (My tummy hurts), "Le pica la nariz" (His/her nose itches), "Me escuecen los ojos" (My eyes sting). In these cases, "se" can never be found; since the subject (the part of the body) is always going to be different from the person the indirect object pronoun refers to, so the form can never be reflexive.
Shifting Subject, Object, and Responsibility
Some reflexive verb forms, such as "perderse" (to get lost), "olvidarse" (to be forgotten) and so on can be used with another (indirect object) unstressed pronoun referring to a person. Then, the person becomes the subject in the translation into English, but in this Spanish construction, the responsibility for the loss is reduced by not making the person the subject of the sentence. "I lost the book" can be "Perdí el libro" , "El libro se me perdió" or "Se me perdió el libro" (literally: "The book got lost for me"), but the second form mitigates that person's responsibility in the loss by making the book the subject. A similar thing happens with "I forgot the book", which could be either "Olvidé el libro" and "Se me olvidó el libro".
Pasiva refleja - Passive voice
Then there are pasiva refleja constructions with "se". In Spanish, passive sentences are easily formed by using a reflexive form with "se" and a passive meaning. Actually, that construction is more common than the usual passive with ser+participle, which is quite rare in spoken language. The pasiva refleja construction doesn't allow the expression of the agent though, and it's usually used when you don't want to mention who does the action. For example:
Los albañiles construyen las casas.
The builders build the houses.
Las casas son construidas por los albañiles.
The houses are built by the builders.
The latter is passive construction with ser+participle. It is uncommon and formal-sounding; the active form is usually preferred.
Las casas son construidas.
The houses are built.
This is passive construction with ser+participle and no expressed agent. It is also uncommon.
Las casas se construyen. / Se construyen las casas
The houses are built.
Pasiva refleja construction: a more common way than the previous to say "the houses are built" with no expressed agent.
In pasiva refleja constructions, the passive subject (the object, if the sentence is made active) agrees with the verb; so it's "Se construyen las casas" but "Se construye la casa". You have to remember that in this construction, "las casas" or "la casa" become the subject, even if it often comes after the verb.
Actually the "agentless" meaning of pasiva refleja constructions is extended to intransitive verbs.
"Se habla" means "They talk", "One talks", "It's talked" or "Somebody talks" (impersonal meaning).
"Se trabaja mucho aquí" means "One works a lot here".
"Se dice que..." means "It's said that..."
Now that you know of so many different ways that ‘se’ can be used in Spanish, it’s time to pay attention and try to notice these uses; see for yourself, and then try it yourself!