vertical-align funziona anche nell'xhtml ma - credo - si possa applicare alle sole celle delle tabelle (o in generale ad elementi con display: table-cell)

Se vuoi ottenere lo stesso effetto al di fuori delle tabelle (ad esempio un paragrafo) devi settare l'height e il line-height dell'elemento allo stesso valore