Hay distintas formas de hacerlo y nos puede convenir una u otra según el caso.
En esta página hay 6 formas de hacerlo:
http://www.vanseodesign.com/css/vertical-centering/
Pruebo dos que funcionan:
1) Con line-height. Sólo sirve para una línea de texto. Sólo hay que poner al texto el atributo indicándole la misma altura que tiene especificada la capa contenedora. Por ejemplo, si la capa contenedora hiciera 200px de altura, al texto que quisiéramos centrar verticalmente habría que ponerle:
line-height: 200px;
2) Con dos capas anidadas:
HTML
<div id="parent">
<div id="child">Content here</div>
</div>
CSS
#parent {display: table;}
#child {
display: table-cell;
vertical-align: middle;
}