Hay varias técnicas para lograr eso, que suele conocerse como pie abajo.
Si pasas por
www.araudi.net verás alguna.
Una que me gusta por su sencillez y limpieza de código es la siguiente:
Código HTML :
<body>
<div id="contenedor">
<p>Todo el contenido menos el pie</p>
<div class="empuje"></div>
</div>
<div id="footer">
<p>Contenido del pie</p>
</div>
</body>
Y el css:
Código :
* {margin:0; padding:0;}
html, body {height: 100%;}
#contenedor {
min-height: 100%;
height: auto !important;
height: 100%;
margin-bottom: -1em;}
.empuje {height:1em;}
#pie {
min-height: 1em;
height: auto !important;
height: 1em;}
Añade un doctype correcto.
Si necesitas algún cambio en la altura, fíjate en la igualdad que existe entre la altura de #pie y el margen inferior de #contenedor (en negativo)
Saludos