I use a propane torch and an OBD-2 reader. I set the reader up to graph short-term fuel trim in real-time, turn on the torch low (and NOT lit!), then slowly move the torch around the intake side of the engine. When the fuel trim plummets, the torch nozzle is near the vacuum leak. A bit crude, perhaps, but it works. In the interests of not blowing anything up, don't do this on the exhaust side of the engine.
My 330i -- 12 years and still loving it!
2013 335i M-Sport on the way, ED planned 5/2013