I have a simple table with 1 TD with vertical-align:middle;. This TD contains an Image :
table
TD
vertical-align:middle;
Image
Is this what you mean? http://jsfiddle.net/JFVNq/
The reason is spans are treated as inline so you need to make them block.
CSS for the span:
td.vert span { vertical-align: middle; display: block; }