first a concept:
a BLOCK level element is 100% width by default. You shouldn't declare 100% width unless the situation demands it.
Also, by declaring 100% width you make padding/borders become ADDED to the calculated width. In other words, width:100%; padding:1em= 100%+2em.
So in this case #Footer, which is already 100% the width of your body , gets 2 additional ems of padding and on top of that since you made your body be the width of the screen ( width 100%;) then the screen must grow bigger than itself (thus the scroll bars)
Try taking the horizontal padding of #Footer and see if it help. Do note that you may have other places in your code in which you are doing the same thing, the easiest solution is NOT to declare width:100% ; for block elements.
hope that helps