Это зависит от семантики используемого вами события.
Если вы используете событие, чтобы запустить более одного потока, то вам не следует сбрасывать событие в каждом потоке. Если вы используете его для запуска только одного потока, то это снова зависит от дальнейшей семантики. Если событие используется для сигнализации других вещей другим потокам, то вам необходимо сбросить событие в исходящем потоке. В противном случае, если событие используется только для сигнализации о смерти одного потока, и ничего больше, вы можете сбросить событие или нет. Ничто иное не проснется в результате события, о котором было сообщено.
Вам не нужно сбрасывать событие, чтобы предотвратить утечку ресурсов. Все, что вам нужно сделать, это CloseHandle()