It depends upon your requirement. By making use of both you can define start and end size of the heap.
For example, the java option -Xmx768m gives it a 768MByte heap, maximum but starts with just a 2MB heap. You can add -Xms256m (for example) to make the heap sart at 256MB - this can be more CPU efficient if your going to need that larger space anyway
Usage example: java -Xms64m -Xmx512m