I take two approaches to viewing this issue in my own life. First, I feel your pain. I can look at most of the programs around my place of employment and feel the desire to "...throw them all away...". However, the decision-makers here will almost always use and win with the "don't fix it if it ain't broke" argument. Given that reality (coupled with a monthly mortgage payment :-), I often remember this bit from the "Tao of Programming":
7.1 A novice asked the master: ``In the east there is a great tree-structure that men call `Corporate Headquarters'. It is bloated out of shape with vice presidents and accountants. It Issues a multitude of memos, each saying: `Go Hence!' or `Go Hither!' and nobody knows what is meant. Every year new names are put onto the branches, but all to no avail. How can such an unnatural entity exist?''
The master replied: ``You perceive this immense structure and are disturbed that it has no rational purpose. Can you not take amusement from its endless gyrations? Do you not enjoy the untroubled ease of programming beneath its sheltering branches? Why are you bothered by its uselessness?''
The other thing I do is try to find joy in smaller, more personal things, things that could benefit my employer, but will benefit me in the long run. I often find that paradigm shifts I sometimes experience when learning new programming languages and design techniques are invigorating. For example, try reading (and really pondering) some of Paul Graham's writing. Just the other day, I ran across Naked Objects, and the idea there of flipping a typical application inside out (from a verb->noun perspective to a noun->verb one) was exciting. Learning new programming languages (Smalltalk!) has had the same effect.
...every application I have ever worked on is a glorified munger...