Node groups are for load balancing .
You can define nodes/agent server under a node group for same application .
by doing this you are balancing load on one server .
also in CTM V7 you can define node restriction under a node such as CPU usage and Number of concurrent execution on node for better efficiency and performance.
apart from this if you are using node group in job definition and your agent host name changed then you need to update this only in node group instead of updating in all job definition.
Hope this help you