Con text-align se alinearán los elementos que sean de texto, no de bloque (más que nada por lo de "text"

)
Debería funcionar añadiendo un margin auto a ese selector:
div.contenido {
width : 800px;
background-color: #1a1919;
border-bottom: 2px solid #2a2a2a;
border-top: 2px solid #2a2a2a;
padding: 0px;
text-align: center;
background-image : url(imagenes/bgcenter.gif);
margin: 0 auto;
}
Mikel.