Модуль - это автономный блок вашего приложения с возможностью повторного использования. По умолчанию, приложение имеет только модуль Application. Помещать свои модели, представления и контроллеры в этот модуль - вполне нормально, особенно при разработке простого веб-сайта.
Модуль может содержать модели, представления, контроллеры и ресурсы. Классы модулей, как правило, "живут" в отдельном пространстве имен (с тем же именем, что и у модуля). У модуля есть свой файл конфигурации, где можно зарегистрировать маршруты, контроллеры, плагины контроллеров, сервисы, помощники представлений и т.д.
Вам может понадобиться создать новый модуль в следующих случаях:
В любом случае, в реальной жизни все несколько сложнее, и вы должны руководствоваться интуицией, когда принимаете решение о создании нового модуля. Если вам кажется, что выделение функциональности в отдельный модуль принесет вам значительную пользу, стоит его создать.
В то же время, не следует создавать большое количество почти пустых модулей - лучше объединять в один модуль функционально связанные между собой элементы.