Thomas is one of my favourite names. It's a strong, handsome classic and Tom is a very down to Earth shortening.
I don't love Henry. It's ok, and a lot more mainstream now than it once was, but it still has that posh private school vibe to me (Hooray Henry).
Out of the two, I much prefer Thomas.