I drive a 2009 335i, so I'm all too aware of the issues with BMW's and brake dust. For me, it's been a multi-step process, but I'm able to keep mine very clean.
1. Assuming that they're very dirty to begin with, either Sonax or P21S wheel cleaners. Both are incredibly strong, but safe for German wheels. You should only need to use them initially, assuming that you clean them at least weekly.
2. You'll need a variety of brushes to clean the barrels and calipers. The Daytona's work fine (sold here), but I prefer the Wheel Woolies for weekly cleaning. You'll need multiple sizes to clean behind the calipers. You'll also need a good small brush to clean the lug nuts, as they collect dust like mad.
3. Lastly, as far as sealing, spend the money on either Opti-Coat or CQuartz. I've bought an used Wheel Wax, PB Wheel Sealant, Prima Wheel Armor, Collinite and plenty of other sealants. All work well, but I get too tired of having to reapply them. Three months ago I applied CQuartz, and I've never looked back. Just a quick hit from a pressure washer, and the brake dust is gone. It's expensive, but worth every single penny.
BMW wheels are a pain, but with the right tools and a little time, they're actually easy to keep very nice looking.