Vertical align is a property of the block elements only, mostly used in tables, to arrange text in the table cells in a proper position if the cell is higher (due to data in the same row and difference column(s)) than that is required by the text in a first cell.
[EDIT: answering the follow-up question about table cell]
Test the HTML below:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css"><!--
td, table { border: thin solid; }
td { padding-left: 1em; padding-right: 2em; padding-top: 1em; padding-bottom: 1em;}
td.top { vertical-align:top; }
td.middle { vertical-align:middle; }
td.bottom { vertical-align:bottom; }
--></style>
</head>
<body>
<table><tr>
<td class="top">top</td>
<td class="middle">middle</td>
<td class="bottom">bottom</td>
<td>1<br/>2<br/>3<br/>4<br/>5<br/>6</td>
</tr></table>
</body>
</html>
Probably you don't see the difference on you example, because the vertical size of all cells in a row is the same. You need to have one cell with higher content to see the difference in vertical align style.
I tested it on Seamonkey (Gecko layout engine, same as the one used by Firefox) and IE8; it should work with any non-nonsense browser.
—SA