http://www.bavariantechnic.com/?gcli...ICFdW4wAodwqMK
This is who I use and it's stellar, gives me the readout the dealers use and also lets me shut off problematic parts to help diagnose issues.
Almost like having the dealer in your garage.
You just need the enthusiasts version not the professional. Unless your hardcore and want to code and all that jazz.