So you really have two options here:
1) Keep the stock ROM and use UMA, now known as Generic Access Network (GAN), offered by your provider. See the thing about GAN is that even though it is standardized, mobile operators take it and make it somewhat proprietary. You would really need to stick with the operator's App for reliable service. Their might be a 3rd party app out there (I have not seen one), but my guess is you would encounter problems.
The advantage to using GAN is that your cell phone number is used to call you where ever you are. If you are at home or in a hotel on Wifi, people will reach you using your T-Mobile phone number. It is also pretty secure. All your voice etc is encrypted from your home to the provider.
2) Use a more traditional VOIP service at home. For example, I use sipgate.com with the sipdroid app on my phone. Sipgate will give you a phone number (called a DID) and they actually have free incoming calls. The outgoing rates are very reasonable and would probably be much less that the UMA/GAN service. There are other services besides sipgate.
The problem with that exact setup is that people have to call your t-mobile number when you are on the cell network, and your sipgate number when you are on wifi. Not a good situation. That is where I use google voice. Google give you a totally new phone number and you point it to ring both your t-mobile phone number and your sipgate number. Which ever one answers first wins. The only real drawback to this is that you have to give everyone your new GV phone number. Not a big deal for me. This will also solve your outgoing Google Voice problem in two ways. 1) You just dial using sipdroid and your sipgate account. In the settings of your sipgate account you can tell it to provide callerid of your GV number everything you make a call. That way, people only see your GV number. 2) There serveral free android apps that will initiate a GV call through your data/wifi connection (so you dont need cell coverage). You'll have to google something like "google voice sipdroid sipgate" for the exact configuration.
Hope that helps some.