+2  A: 

Try using pixels for your padding and borders and see if that solves the problem. I suspect the fact that you're using ems is generating some weird rounding glitch that causes the 4px/5px difference.

Rahul
Thanks. Changing to pixels fixed the text positioning inconsistency in the first column but doesn't solve the vertical centering issue in the icon column though...
Nathan Ridley
It's hard to see what else could be causing issues. If you could reproduce the entire page somewhere for me to check, I might be able to help a bit better. It looks like you have some css classes applied to the table (class "center" for instance) that aren't reproduced in the css you posted, so maybe you should look at what rules those are declaring?
Rahul
I've uploaded to here: http://www.graphicsdistrict.com/css-issue/Accessory.htm
Nathan Ridley
A: 
<td valign="middle">

Not the best way, since you don't use css, but it always worked for me.

Adittionally, take a look at line-height css property for cell. If your cell is 20px high, set line-height to 20px etc.

usoban
I think you mean valign="middle"? "center" is only used on horizontal alignment.
Nathan Ridley
Woops, you're right. Haven't used this for a while and seems like I forgot it ;)
usoban
In any case, it didn't solve the problem. The css style vertical-align duplicates the effect anyway.
Nathan Ridley
A: 

Try this in your cells, for this to work though I believe the cells need a height specified in them.

css vertical-align

Mauro
That's been there from the start.
Nathan Ridley
+3  A: 

The image is vertically aligned on the baseline leaving room for descenders - just in case you add text. Vertically align to the bottom and the extra space goes away.

td img {vertical-align:bottom;}
Emily
Genius! Thanks :)
Nathan Ridley