There is no silver bullet...
Just to mention another argument I haven't seen here yet:
If your dataset is really huge and doesn't fit into memory, then merge sort works like a charm. It's frequently used in clusters where dataset can span over hundreds of machines.