Собственно всё описано в MSDN
Статические классы и статические методы класса
Технически, статические члены класса это члены, которые живут своей жизнью независимо от объектов этого класса. Если весь класс состоит из таких классов, то его можно и нужно также обозначить статическим.
Пример использований:
0. static void Main(){}
1. Реализация шаблона синглтон — поддержка одного объекта на процесс. Можно даже реализовать единственный объект через статический класс, хотя я бы так не делал.
2. Глобальные параметры объектов. Например, количество созданных объектов или коллекция объектов.
3. Статический класс, содержащий параметры проекта, константы или глобальные переменные проекта, а также методы верификации, трассировки и тп, не привязанные к конкретному классу.
4. Методы расширения реализуются через статические методы.
см. MSDN