You should always track down memory leaks i think. You should create a memory dump after a few weeks of running, and analyze it. Google is your best friend here.
I once created a memory leak by creating/changing objects in the system session, and there was one code path that did not commit or rollback them, for which reason the changes are remembered forever by the system session.
If it's the application I think you're meaning, graphs show a possible (small) memory leak, building up a pile of more and more referenced objects in the java memory, leaving less and less memory for active threads in your application, up to the point where (after like 10 weeks) about the only thing that's left running is the gc itself, madly trying to make some space available. :|
Garbage collection could no longer be performed effective. If your application is running normal, it is probably a hosting issue. Maybe the virtual server is throttled down for a while?