At some point, we will want to configure our chat room to do different things, for example, only allow new users to read the messages, maybe add a password, or just set the room name. While this may seem feasible to handle custom stanzas for a few of these types of changes, when you expand to all the use cases just for configuration, then learning/knowing all of these systems would become a nightmare.
Thankfully, XMPP provides something called a data form; it can help address this dilemma. Data forms (as defined in XEP-0004) provide a standard way of requesting and setting structured data. They can be thought of as analogous to forms on a web page, and indeed you may notice several similarities.