All OBD II scanners can read 1996+ BMWs--OBD II is mandated by U.S. Federal Law for all cars sold here. Standard connector, standard electrical/electronic interface. Heck, alot of standard codes.
The one I have is an Innova OBD II scanner. Their 3030 model. It works well.
Their website:
http://www.iequus.com/