Так же, как + = подписывает вас обработчиком на событие, - = отменяет его подписку.
Используйте его, когда вы больше не хотите, чтобы определенный обработчик вызывался при возникновении события. Вам часто нужно использовать его только в том случае, если компонент, вызывающий событие, логически дольше живет, чем обработчик события. Если вы не отмените подписку, «сборщик событий» фактически имеет ссылку на обработчик, поэтому он может поддерживать его дольше ты хочешь.
Как отмечено в комментариях:
-=
удалит только один обработчик; если подписано несколько обработчиков (даже с использованием одного и того же делегата), это все равно только уменьшит количество обработчиков на 1. Последний экземпляр указанного обработчика - тот, который удален. (Таким образом, если ранее у вас были обработчики A, B, A, C в этом порядке и вы удалили A, вы получите A, B, C.)
-=
не вызывает ошибку, если указанный обработчик еще не подписан на делегат; он просто игнорирует запрос. Это верно, даже если у события нет подписчиков, подписанных на него в данный момент.