This thread goes into some detail on OBD readers. eBay has the Foxwell 510 for $125. Carly looks cool but it's subscription based so probably the same cost in 1 year and more after, not sure.
I'm an engineer and DIY'er, so part of the fun of owning a BMW is working on it myself. I can't/won't do everything that may need fixed, but I'll tackle some easy to medium difficulty jobs.