It is not unlikely that you will need to deliver more than one version of your app. In fact, it could be a smart thing to deliver your app under multiple names, each with a different look and feel. It is great for targeting more than one audience. Another example is that of delivering a light and paid (or free and pro) version of an app. Although a flavor often is used to customize the look and feel, there is no reason why you could not use it for enabling or disabling features.
In addition to a particular flavor, you might need to create build types with different configurations. Think of an app that is communicating against a backend. You probably want to test your app with a different endpoint than the one you use for your app in production. This allows you to safely test your app without the need to worry that it will mess up your production data:

The build...