Every piece of software needs maintenance. Plain and simple.
The more complex the software, the more maintenance it will likely need to ensure continued use. The obvious questions are why and how much. This varies and is a bit of a loaded question because every software product is different. It's possible to minimize maintenance costs through intelligent planning and execution, but it's also possible to wind up paying more to maintain your product than it did to develop it if you’re not careful.