There are some instances where I will leave warnings in code, or where it's infeasible to clean them up (although I do remove the ones I can). For example:
- If you have something you're working on, and you know it needs more work/attention, leaving a warning in place to indicate this can be appropriate
- If you're compiling C++ with /clr, there are several warnings about things which cause native code to be generated; it can be cumbersome to suppress all these warnings when the codebase cannot be functionally changed
- Cleaning up warnings when you don't understand what the fix does. I've done this a couple times with PC-Lint warning, and ended up introducing bugs. If you don't know what the exact effect of the change is (eg: C-style casts to eliminate warnings), DO NOT do it. Figure out the warning, or leave the code alone is my advice.
Anyway, those are the instances off the top of my head where leaving warnings might be appropriate.