Delegated permissions are used when you want to call the Web API as a user that is logged in. For example, you want to know the zip code of your location. Based on your location, it will give you a result.
In terms of Application permissions, they are used when the application calls the Web API as itself. For example, if you wanna know a zip code of a given city that you are feeding, it will give you results that do not require a user logged in from that city.