Bueno en primer lugar se debe mencionar que la propiedad vertical-align tiene dos usos se puede aplicar a etiquetas TD de una tabla y a elementos en linea (<span>, <img>, <b>) que se encuentre dentro de un bloque contendor.
Por ejemplo yo lo que suelo hacer y me funciona relativamente bien es lo siguiente:
Código:
.bloque
{
height:100px;
}
.imgDummy{
width:1px;
height:100px;
}
.bloque img, .bloque span {
vertical-align:middle;
}
<div class="bloque">
<span>Mi Texto</span>
<img src="dummy.gif" class="imgDummy">
</div>
Creo una imagen de la misma altura que mi contenedor y para que los demas elementos dentro de este se posicionen a la mitad de la altura en relacion de la imagen dummy que tiene el mismo alto que el contenedor y si mal no recuerdo creo que tambien funciona sin la imagen.... pero no recuerdo exactamente.