I used to think that NFC is the way to go (and I still think it will be the future), bus since I have been using the excellent Android Bitcoin Wallet (https://market.android.com/details?id=de.schildbach.wallet
) using QR codes, I have came to the conclusion that QR codes are good enough.
Actually, the benefit of NFC or other technologies over QR codes are pretty minimal: QR codes are fast, easy and you can start accepting bitcoins with them by just printing your QR code out. It takes from me no more than 5 seconds to scan a QR code with my android app. I would argua that paying with QR codes and bitcoins is faster than cash.