Most cost effective way costs £2,20 (yes....really)
ebay obd2 bluetooth dongle (£2,20 shipped)
http://www.ebay.com/itm/ELM327-OBD2-II-Bluetooth-Auto-Car-OBD2-Diagnostic-Interface-Scanner-Tool-EA-/262740146913
Free android torque lite app.
:roll:
Reads all generic obd2 engine codes and live data. resets codes. Easy to use.
Does no programming, airbag reset or enhanced brand specific obd2
If you want to use that to the full extend and possibilities of the car, you can only use BMW INPA/DIS/PROGMAN/ISTA.
Be aware for a very very steep learing curve