If it ain't broke, don't fix it. That's the best mantra to tell yourself in most of these situations. I both maintain and design new enterprise systems, have been for a few years. And unless you work for a glorious company where time and expense don't matter...again, if it ain't broke, don't fix it.
We usually rewrite things only if they are proving that leaving it as-is is more of an expense, personnel- or money-wise, than it is to rewrite it. Only then do we move on it. Interesting this came up now, as I'm in the process of moving our old source control system over to a new one. I'm trying to clean up as I go, so I'm investigating old one-off legacy systems to see if they're still in use. To my surprise, I've stumbled across quite a bit that's still in heavy use within certain pockets of the company, but nobody's complained about it or asked for enhancements for years. What benefit would we gain in rewriting something that's obviously working well enough for who needs it?
To be a devil's advocate against myself, there are also times where it might make sense to rewrite something, but not because it's being a drag. Maybe it encapsulates important data that can be re-used somewhere else in another system, or needs to plug into some other process. Some of our old ASP apps would have a hard time doing this well unless we rewrote them in .NET.
There are tons of things to think about with the business impact, as you pointed out. We once re-wrote an ancient ticketing system that was working just fine, only to give some new reporting capabilities and make it look slicker. It was a disaster because we didn't manage the change very well at all with the stakeholders and eventual users of the system...they weren't trained well, the system was overly complicated with too many bells and whistles, and we caught a lot of flak for it. Just an example. Other systems where we properly deal with that aspect of the change have gone much more successfully...but the point of that story is to not rewrite something just for yourself without involving everyone. Which can pump up the expense of the project dramatically if you don't watch it.
So, the ambiguous answer you probably weren't wanting was "it all depends." :) Though a lot of us don't like the fact (including myself a lot of the time), we're paid to provide business value, not necessarily to create picture-perfect code. Remember that when these decisions are being made and you'll prove valuable to those up the chain.