General:
* Malodorous: (formal)
* Foul: (strong, unpleasant)
* Rank: (very strong, offensive)
* Noisome: (harmful or offensive to the senses)
* Stinking: (informal)
* Musty: (stale, damp)
* Fetid: (rotten, putrid)
* Reeking: (emitting a strong, unpleasant odor)
* Putrid: (rotten, decaying)
* Offensive: (unpleasant to the senses)
* Unpleasant: (not agreeable to the senses)
Humorous:
* Aroma-challenged: (lighthearted)
* Fragrantly challenged: (lighthearted)
* A bit ripe: (suggests something has gone bad)
* On the fragrant side: (suggests something is not fresh)
Specific:
* Musty: (old, damp, like a basement)
* Foul: (like rotten eggs)
* Rancid: (like old fat or butter)
* Sour: (like spoiled milk)
* Fishy: (like rotting fish)
* Mildewy: (like a damp cloth)
The best word to use will depend on the specific situation.