If air is blowing but no cold air, it is definitely due to the following:
1. A/C is low of charge > you have a leak in your A/C system
2. Compressor is not engaging > pressure switch is not trigerring clutch to engage > bad pressure switch (typically on/off only)
3. Burnt out compressor (not likely)
4. Compressor clutch is worn out (not likely on a new car)
5. clogged A/C system > BMW I am quite certain has TXV A/C system, ie. thermal expansion valve with receiver/drier. > cleaning out TXV filter or replacement of TXV typically solves this problem.
6. TXV's temperature sensing bulb has leaked so it is fully closed at all times.
In all above cases, the A/C button should be lighted up. Lighted A/C button does not mean that it is working, it only means electricity is being supplied to compressor clutch.
Quick few things to check
1. Open hood (engine off)
2. Find A/C compressor (from picture of M54 engine, it is at about 7 o'clock position to the engine fan) It is connected to the engine belt, has block rotating component, and should have a large mass (compressor) attached behind it. You know you found it if you can see 2 aluminum tubes coming out of it, one larger than the other.
3. Fire up the engine
4. Engage A/C, put it on full cold but slowest fan speed
5. Quickly run out and watch the compressor clutch. the clutch plate should engage and disengage at regular intervals
The compressor/clutch should cycle on & off at regular intervals at about 10 seconds or so. If it cycles, then you probably have a A/C blockage somewhere. Crap gets trapped in filter (typically just prior to TXV) and block refrigerant path. So no/little refrigerant path, no or little A/C.
If it does not, you could have one or more of the following: bad clutch 'coil', blown fuse, broken electrical circuit, leak in A/C system (most likely). Leak in system is most common. Make sure when the mechanic confirms this, they trace where the leak is occuring. Your car is 2001 so the refrigerant might have leaked out over 3 years but still 3 years is too short. A good A/C system should hold the charge for at least 5 years, 10 if really good.