If you have an Android phone, check out Car Gauge Pro. It will also read specialized codes (B, C, U codes) on top of the standard P codes. Interface looks like it was designed by a 10 year old, but it works.
Wifi/Bluetooth OBD2 dongles have been around for years now. Most of them use the same ELM327 chipset and there are a variety of manufacturer-specific apps that can go above and beyond basic code reading; Carly for BMW, for example, allows you to change a lot of the hidden bits on the ECU.
I decided to buy a bluetooth obd2 adaptor, and need to download a program from the app store. I see the Torque Pro is recommended here... any input on the free Torque Lite? I don't mind paying for the Torque Pro if it is much better than the Lite version.