I haven't looked at your page code. I dont know how to let a div box to extend to the bottom of the wrapper. But a simple alternative will be making a background image of 1 pixel height repeat the background image in the y-direction.
Calvinc is correct. You need to insert an extra container DIV that holds your content in id="posts" and id="sidebar". Give that div a background image. This will ensure that the grey color is as tall as the content in id="posts". There is a JS option that will determine the height of id="post" and set the height of id="sidebar" to match if id="sidebar" happens to be smaller.