Mejor generas una capa que sea contenedora del contenido, y a ella le agregas el fondo que quieras, de esta forma, abajo de esa capa generas el footer, y así dependiendo de la cantidad de contenido la capa principal crecerá lo correspondiente y mostrara el fondo hasta donde deba...
 
Entonces el codigo html seria asi:  
 Código PHP:
    <div id="wrapper">todo mi contenido</div>
<div id="footer">pie de pagina</div> 
    
   
Mientras que tu hoja de estilo seria algo como esto: 
 Código PHP:
    #wrapper {
    margin: 0px auto;
    width: 800px;
    background-image: url(ruta_imagen/fondo.jpg);
    background-repeat: repeat-y;
    background-position: top;
}
#footer {
    margin: 0px auto;
    width: 800px;
    height: 48px;
    background-image: url(ruta_imagen/footer.jpg);
    background-position: top;
}