CSS3:
body {
background: url('images/bg.jpg') no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
Não funciona no IE, não sei funciona nos IE's mais recentes, mas nos antigos tenho a certeza que não. Mas se quiseres podes procurar solução em javascript.