Vertical-align: middle wouldn't work with the original code posted, no.
However it does work on inlines, not just in table cells, though my understanding of it working with inlines is screwy enough that half the time when I try to implement it, I do it wrong.
What it does is let an inline align itself vertically to the (state where, bottom, baseline, middle, top, or the rest) of an adjoining element (here's where I get confuzled, I forget if this other element also has to be inline... I thought so).
So for instance I'll use it a lot for lining a text input with a submit button, or lining up a checkbox or radio button with a label. Since they're all either inlines or inline-blocks, they can line each other up with their lines, since inlines have those lines listed above (baseline etc).
Edit: here's another link, one of those oldies but goodies.. I have to re-read it every once in a while cause I always forget the little details: http://phrogz.net/CSS/vertical-align/index.html
*edit3 I forgot this but of course vert-align also works with the CSS property display: table which you can put on non-table elements (except in IE7 and below).