Go to your nearest BMW car dealer, buy a bottle of their wheel cleaner. It's safe on expensive car wheels, gets rid of the grime on the rims is safe on the spokes and the brakes (in fact it cleans the calipers up nicely too).
Wet the surface spray on with the pump bottle and work with a paint brush or similar.
It's a good general cleaner on the engine etc too.
You can buy re-fills in 5 litre bottles (just bought 5 litres today, cost £25. Sounds pricey but the 5 litres lasts about four years and I use it a lot!).
It's not caustic like Wonder Wheels (use that to get rid of the 'gold' effect on your exhaust but I wouldn't use it on the wheels), it's a strong detergent so needs rinsing after use.