This worked for me:
Ok, I seem to have stable connection now, and neither T-mobile or HTC provided the solution.
The hint that led me here, was that when using Windows 7's network troubleshooter, I was informed that the DNS server wasnt responding.
When I had a connection, I used IPCONFIG /all to obtain the IP address of the DNS server.
I then entered the DNS server IP address into the TCP/IP V4 properties on the network connection on my laptop.
Previous to this, I had to reset every 2 days. So far I have not had to reset for about 7-10 days. It seems to have worked for some bizarre reason.
Just more info -
Both DNS and DHCP were on the same subnet, which suggested that DNS should be contactable/accessible, otherwise if not then the DNS daemon must have a software glitch.
So by specifying the IP address my phone should know where to look for the dns server. It worked.
So at this stage my conclusion is- whatever form of DHCP is leasing the IP addresses on the phone has some flakiness in it and it doesnt always define a IP address for the DNS server. Once this is manually specified in the TCP/IP properties the DNS server is contactable and routing of my traffic is fine.