Memory doesn't "just leak". It takes a program bug to cause memory leaks. No amount of VM configuration tweaking will change that. To avoid memory leaks, don't hack and slash the fastest-cheapest code you can. Take the time and effort to do the job professionally.
Tomcat 6 does have its own way of "leaking memory", which is the infamous PermGenSpace problem. If you repeatedly deploy a webapp in Tomcat without restarting it, some of the old webapp's static resources are not freed up by Tomcat and eventually you will run out of PermGen memory, which is a distinct memory pool from the primary heap/stack space. As far as I'm concerned that one is a deficiency in Tomcat, but it's something that can be managed by restarting Tomcat when re-deploying, unlike application-bug memory leaks which can happen with little or no warning.
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.
That is a really big piece of pie for such a tiny ad:
a bit of art, as a gift, the permaculture playing cards