Puedes probar haciendo un div del tamaño de la imagen, centrado, darle al background del body el mismo gris para que no se note el cambio, y poner la imagen de fondo no en el body sino en el mismo div.
algo asi, por poner un ejemplo:
Código:
body {
background-color: #f0f0f0;
}
#capa {
background-image: url(imagen.jpg);
width: ancho de imagen.jpg;
height: alto deimagen.jpg;
}
Código:
<div align="center">
<div id="capa">
contenidos
</div>
</div>
EDITO: El problema que te puede generar esto es que en resoluciones superiores a 1024 x 768 la parte de los contenidos se te quede muy angosta y haya demasiado "aire" a los costados.
Saludos!