I think that there are sometimes good reasons to have widely-different values for -Xmx and -Xms, and sometimes good reasons to use the same value for both.
Widely-different values would be a good idea if you have a program that might need a small or a large amount of memory, depending on information only available at run-time (e.g. user input). If you were to use the same value for both -Xmx and -Xms in this situation, then you would have to make it a very large value and that would waste the resources of the computer for runs when the requirement was actually small.
On the other hand, using the same value for both can
boost overall performance, as no time is lost resizing the heap, or thrashing the GC, trying to work within a small heap. Another time when it is useful (one I have experience of) is when there is another application that grabs a large proportion of available memory. The Java application needs to claim enough memory straight away, otherwise this other application will claim it, and prevent the Java application from getting more later.