Kiedy używać IComparable <T> Vs. IComparer <T>

Próbuję dowiedzieć się, który z tych interfejsów muszę zaimplementować. Obie zasadniczo robią to samo. Kiedy użyłbym jednego nad drugim?