Хороший вопрос. В принципе, они все значат примерно одно и то же - "повторение чего-то".
Но есть и некоторые отличия.
Для "опять" характерно несколько негативное значение, когда говорящий недоволен тем, что какое-то действие повторилось:
- Опять ты за свое!
- Зачем ты опять это сказал?
- Я опять сделал ошибку.
- Опять пошел дождь.
То есть, когда в очередной раз повторилось что-то плохое, неприятное или нежеланное.
"Снова" звучит более нейтрально и значит просто - "еще раз", без негатива:
- Этим летом мы снова едем на море.
- Снова пошел дождь.
"Заново" употребляется в смысле "начинать делать что-то еще раз", "начинать сначала", "переделывать":
- Компьютер завис, и я не успел сохранить работу. Пришлось печатать все заново.
"Вновь" - более "литературное" слово. И даже немного поэтическое, оно часто встречается в стихах.