The Autel AL7519 is good value. Works for me and my Lexus but NOT ALL Rover codes (What code reader does?). if it flags up some queries Rover is not listed but BMW is and it helps.
http://www.ebay.co.uk/itm/1818976740...%3AMEBIDX%3AIT
MIL light could be MAF sensor or Lamba for starters.
One simple job use injector cleaner in the fuel and run the car hard, that sometime clears the tubes
At least with a code reader you can turn off the lights if only temporary!