para hacerlo has de usar la propiedad display con valores que hacen que los elemento se comporten como un elemento de tabla. en este caso los valores son table y table-cell
Cita: #cont {width: 200px; height: 200px;}
#cont[id] {display: table;}
#foto {text-align: center;}
#foto[id] {display: table-cell; vertical-align: middle;}
<div id="cont">
<div id="foto">
<img src="img.png" width="100px" height="100px" />
</div>
</div>