There has been a lot of controversy concerning Google Voice and the iPhone. Here is an AppleScript that allows you to place Google Voice calls directly from your iPhone's Contacts/Phone app.
The script works by adding numbers to contacts in Address Book that dial your contact via Google Voice. The new number is prefixed with your Google Voice number, your pin, and the number two. It dials into your Google Voice number and places the call to your contact.
The advantage of this method over apps like GV Mobile or the web is that you don't need a data connection to place a call, and you don't need to answer the ring-back. The downside is that waiting for the pauses and all the dialing is a bit slow. Also, your address book gets cluttered up with all the duplicate numbers.
Here is the code. Replace YOUR_PIN_HERE and YOUR_GV_NUMBER_HERE with your Google Voice pin and voice number, respectivel (leave the quotes). Enter this in Script Editor then run it:
Mac OS X Hints
http://hints.macworld.com/article.php?story=20090805155644746