I clean the leather part of the steering wheel in the following manner.
Cup of water in a plastic container. Get regular Mr. Clean magic eraser use it to GENTLY (we know you're strong, but now is not the time) wipe around the wheel. Rinsing the sponge regularly. Continually wipe dry with a micro fiber towel and to wipe off excess dirty water.
When dry, grab a clean/old-ish toothbrush a bottle of shout spray. spray the shout onto the toothbrush and neatly and gently brush the tri-colored M stitching around the steering wheel. Wiping off with a microfiber towel as you go.
Lastly, with everything dry, follow up with your choice of leather condition. Let set for a few minutes and then wipe excess condition off.
I just did this whole process on my dad's E46 M today. I didn't take any before shots unfortunately. Too many people apply conditioner and shiny junk, and it makes the steering wheel look like crap. The leather should be matte - not shiny. Loading conditioner onto of dirt already on there is like takes a bath in dirty bath water.
(eek!)
(eeeewwww!)
I did the same thing (minus the shout) for the armrest.
(here you can see when I took one swipe with the sponge and the difference)
(after complete cleaning and then conditioner)
I did the same thing on my wheel awhile back: