That depends entirely on your application. You will need to do load
testing and monitor the garbage collection statistics under load. From there you can determine how much heap you need.
For suggestions on how to gather GC data and analyze it, see these white papers:
Java Garbage Collection Statistical Analysis 101
Java Garbage Collection Performance Analysis 201
at
http://www.cmg.org/cgi-bin/search.cgi?q=java+peter+johnson&x=30&y=10