A USB wifi dongle is more versatile, especially if you have multiple machines. I'll often use mine to plug into machines I've just reinstalled which don't have network drivers, so I can install the native ones!
But if you don't need the flexibility, an internal card is the better (albeit more expensive) choice.