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.
Customer surveys are for companies who didn't pay proper attention to begin with.