They more or less mean the same thing these days, although "shall" sounds a bit old-fashioned. However, if you go back far enough, they mean slightly different things: "will" is to do with "the will" (wanting, intending, desiring to do <something>), and "shall" is more to do with predicting or anticipating that you'll do <something>.