Use a micrometer and check the minimum thickness. If it's above that, go get them turned. If not, go get new ones. Those bumpy spots are hot spots from the pad on the rotor.

Should only cost you about $15-25 per rotor. Much cheaper than buying new ones, unless you go with Meyles. They're about $26 per rotor last I checked at https://www.europartsdirect.com/

I wanted to get mine checked cheap on the fly and took it to Firestone, because I figured it'd be very difficult for them to screw up something as simple as brakes. They even said they wanted to put my car on a special lift (on which I saw another E46 getting brake work done). The shop mechanic took a look at everything, sat down on the couch next to me and told me my rotors would be too thin if he turned them, and recommended that I DIY the brake job myself since it would cost a lot. Good guy. Only cost me $20 to have them look at it all. If they know you love your car, mechanics will take care of you. Well...most of them, I've seen in my experience.

If you do take it to Firestone or somewhere cheap to get them turned, I would do one of the following:

1. Take the rotors off and just bring them to the mechanic to turn. I'm sure they wouldn't mind and would probably give you a small discount for lack of labor. If you do this, just take it to the cheapest place that can turn rotors. It's a very easy thing to do.

2. After you get your car back, undo the lug nuts and re-torque them to specs with your own torque wrench. Chances are they put them back on with an impact wrench and are too tight.