"Will" is less formal than "shall".
You can use 'will' to express things that you do everyday - you will go to school, we'll have chicken for dinner. It can also be used to express your will - I will do this (and you can't stop me). In questions it's usually used with 2nd and 3rd person - will you go? will they ever stop?
"Shall" has a more specific meaning - when a guy offers his arm to a girl he can say "Shall we?". You can also use it when asking a question in the first person, when you are offering, suggesting something, asking for instructions - shall I go? shall I get the flour?. Sometimes it can be used to convey a threat or a promise - You shall not pass! (Gandalf from the Lord of the Rings, remember?), I shall give this mansion to you some day.
Americans tend to use "shall" much less often than "will", I don't know about other English-speaking nations.. The grammar books usually say to use "shall" in the first person, and "will" in the second and third.