You've pretty much got it.
Basically, within a Google Voice account, you can say, "Okay, Google - I have [for example] three phones: home, cell and work. These are the numbers." Then, you can give out the number that comes with your account, and set up which of your numbers are rung based on things like time of day. Or you can have a call sent to all three phones.
Anyway, so Google has all your phone numbers. So when you're ready to call out, you go online and choose a contact you'd like to call. Then Google will ask which of the phones that you have on your account (you have to verify them before you can use them, so you can't have it ring any old number) that you want to talk to that contact with. Once you make a choice, that phone will ring, and a very nice voice will say, "The cost of this call is ['x'] cents per minute." If you don't have much money left on your account, it will tell you how many minutes you have remaining. Then, the number on the other end will start ringing. It only charges once it connects to either a person, voicemail or error message - which was something I disliked about Skype; a lot of times, I found it had charged me simply to ring.
There is a smartphone application, too, that you can call from, but I'm not sure if you can choose from there which phone to use, or if it automatically dials from the phone you're on. I only have the one number - my cell - anymore, so I don't have multiple numbers to test that part out on.
One thing to note, though, is it's not a standalone mobile app like Skype is; using it actually makes a phone call to a local number which acts as a connector to you and the person you're calling, so it will eat your carrier's mobile minutes. So overage charges are something to look out for if you use your mobile.
Anyway, I'm a big fan.