Best way I found of doing what you want is GrooVe IP.
It's a paid app (about $5?), but works very well and is completely simple to set up.
I have it running on a spare Nexus One that is out of contract, and it's great.
I have used it overseas on wifi to get calls to my US-based GV number. At home, I just leave it on the bedside table and can answer cell calls even if my phone is downstairs.
Give it a try. (Note: I'm completely unaffiliated with the company -- I just think it's a great product.)