We have a normal build section that specifies the resource directory and a filter. Then in a profile section we give it a name, and override the filters tag in the build section. Note we keep the other build properties previously defined.
So when we run mvn package we'll use the development.properties. If we run mvn package -P prod we'll get production.properties.
It's also possible to active a profile on certain conditions, such as the JDK version. See the activition tag. You can have a activeByDefault tag in a profile to get that used by default. You can also have a profile defined in your own settings.xml file under the settings tag. That way you can give a property to the build system, your db password for example.