Although all the previous answers are correct I would like (мне хочется) to bring closer attention to the following difference of these two phrases:
Мне хочется - means that the person saying this phrase does not fully take responsibility for this desire. For example, physiological needs: мне хочется есть, пить, спать ... (can be translated to English as 'I want to eat/drink/sleep' but also can be translated, at least for 'eat', 'I feel like something' (usually said with the gesture of hand rotating around the tummy). It can be not physiological too. For example, "Мне хочется верить, что это не так." - I almost have to/made to want to believe that this is not the case. It is not your choice, there is an urge, which is difficult to resist. I guess a good translation for мне хочется in English would be feel impulse. But хочется is weaker than impulse. Impulse = сильно хочется.
Я хочу - usually implies conscious desire to which you commit. Я хочу научиться играть на флейте. (I want to learn how to play flute) - expresses kind of your commitment to learn playing flute in this case.
Я хочу - is a more generic expression. It also can be used for physiological needs. When you say "я хочу" you do not specify whether you want it automatically or by your own choice.
If somebody is a foreigner and does not know the nuances of language, they can say the generic phrase "я хочу" in all above situations and they will be understood.
This is one of the examples where it kind of 'beats me' that such a basic phrase in Russian needs long explanation in English. :-)
Я хотел бы - is more straightforward case. It is сослагательное (aka условное) наклонение in Russian, which is more or less directly corresponds to English conditional mood. In Russian it is formed by adding particle бы to the verb in past tense: хотел бы, сделали бы. In English - by adding would in front of bare infinitive: would want, would do. The meaning is similar in both languages: the action of the verb will take place only, if some conditions are fulfilled.
Also: бы and would in both languages are used for softening the statement. (See here (in Russian)). Direct translation of 'я хотел бы' would be 'I would want' but 'I would like' is more commonly used.
Я хочу открыть окно. I want to open the window. (When you ask it in a room with other guy sitting close to the window) would sound more blunt than я хотел бы открыть окно. I would like to open the window (assuming the continuation if you do not mind).