DealExtreme has the Autel MaxiScan MS509 for about $65 shipped. It's the exact same scanner as the $130 CenTech at HF. It'll take a month to arrive. It worked well reading Hyundai-specific codes on a 1999 Elantra. For the price, there's no touching it.
But will those read prorietaty BMW codes? It looks like only the Peake can read those - but then I can't use it on other cars...stupid!
Perhaps I should get one that can read MOST Bimmer codes and hope That if i get a code it will not be one of the 'special' BMW codes...
I was recommended this one too: perhaps this is good enough for basic code reading and erasing?
If you need to do some special codes, I'd wait until you have a justifiable issue, then buy the BT scan tool.
I'd then either get a super-cheap one to cover, or else hold out for the autel MS609, which will be able to do BMW ABS codes (and abs for a ton of others) as well as being a good scan tool with tons of data.
I have an Acutron Pocket scanner. It reads, estimate whether a severe or not severe problem and will clear codes. ~ $80 at Advanced Auto Parts about 2 years ago. Works just great on my Mazda CX7 and my daughters Santa Fe.