In the world of Extreme Programming (XP), refactoring has become the new buzzword. Business usually doesn't quite understand what it means and, in my experience, sees it as having little or no benefit. As a software consultant, I have to say that in most cases refactoring has a very important role to play. Although most of the benefits are medium to long term (maintainability & extensibility), there are short term benefits (usually performance) as well.
I'm currently refactoring a big project that we finished a couple of weeks ago. The improvements I have already made to the code (my own code and others') have improved the application dramatically. Not only is the performance up by about 300% (my guestimate), but the code makes so much more sense as well; thus improving maintainibility and extensibility. This should make business happy as well, because they will save on any future development or integration of the code. It is only really when an application really will never be touched again and performance is acceptable that refactoring becomes redundant. And how often does that happen?
By the way refactoring is not bug fixing or exposing bad code (although this is often a side effect). It is much more to do with the fact that both business and development have a much better idea of everything about the application (incl. use cases, business requirements etc). Amongst other things, business requirements often change over the course of a project. Refactoring allows developers to re adapt and optimise the code with this in mind. Refactoring is integral to the whole principle of iterative development.