The Bluetooth ones work well. I use Torque on my android. It reads and clears codes, data logs, and you can monitor some data while driving with digital gauges on your phone. But they won't do ABS, stability control, airbags, etc.
If all you need is an engine code reader, get Torque or something similar and the Bluetooth obd adapter.
If you need the other functions, you'll have to pay for the more expensive reader. I have a Launch Tech Creader CRP123 for when I need the extra functions. I think it was $200 or so.