So in general, here's what the different indicators probably mean:
G = GPRS, 114 kbps theoretical max, part of the overall GSM world
E = EDGE, 238 kbps max (around 2x GPRS), also on GSM
3G = HSDPA, or HSDPA+HSUPA - likely to be on different frequencies than if on G/E.
H = on a network that supports HSPA+, but not necessarily operating in one of the HSPA+ modes. However, it might not mean that, I'm not totally sure about it.
From slowest to fastest:
tech / download (forward channel) speed in kbps:
GPRS / 114
EDGE / 238
HSDPA category 11 / 900 kbps (QPSK modulation)
HSDPA category 2 / 1200 kbps (16QAM)
HSDPA category 12 / 1800 kbps (QPSK modulation)
HSDPA category 4 / 1800 kbps (16QAM)
HSDPA category 6 / 3600 kbps (16QAM)
HSDPA category 8 / 7200 kbps (16QAM)
HSDPA category 10 / 14000 kbps (16QAM - 14400 kbps counting error correction bits)
HSPA+ category 13 / 17600 kbps (64QAM)
HSPA+ category 14 / 21100 kbps (64QAM)
There are further categories but I think none of them are currently implemented in the US. The important thing to remember about 64QAM modes is that they're probably only going to be usable in very clean radio environments.
Also I am calling HSPA+ anything in the release 7 3GPP spec and HSDPA anything in the release 5 spec. By that rule, while t-mobile has an HSPA+ network, none of the mobile phones currently connecting to it are actually HSPA+ phones. They might be trying to fudge that rule a bit by saying that since it's an all-IP network and that's an optional part of HSPA+, and the chipsets use "some aspects of" HSPA+ the phones are therefore HSPA+ but I think that's stretching it.
By not labeling things 2G, 3G and 4G they're avoiding having to defend arguments like that - I can go to them and say "but it's not even an HSPA+ phone and certainly not 4G" and they can defend it by saying they never called the phone HSPA+ - only the network - and they aren't calling it 4G - their indicator only says "H" which can just mean HSDPA.
The whole thing is getting pedantic though. T-mobile is stuck in an obscure marketing situation in which their performance is, in actuality, going to be better than 3G phones on most other networks by a noticeable amount, and it is something they should be marketing but calling it "faster 3G" really doesn't get the point across that it is usually just as fast as what sprint is calling 4G.
I think the real 4G requirements are far too aggressive and the generational gaps should have been indicated by powers of ten, e.g.,
2G: ~100 kbps
3G: ~1000 kbps
4G: ~10000 kbps
or in other words log-10 of the download performance. Edge could be called 2.3G, EVDO 3.5G and so on. What we're getting formally is 3G about 2x faster than 2.5G, and then 4G 500x faster than that. It doesn't make a lot of sense to me.