То есть к примеру есть контроллер который выводит форму, он же и обрабатывает эту форму. Это нормальная практика, или лучше отсылать на другой контроллер?
Контроллер лучше другой.
Можно отправлять форму на один маршрут. Например у вас есть маршрут /news - через GET запрос он запустит контроллер NewsController и метод index, а через POST метод store для добавления новости.