Beyond that, [here](https://discuss.ipfs.io/t/ipfs-incentives/2456/2) is a good explanation.
To elaborate a bit more: When you set up a node using an unmodified version of their program at the moment, you tell it how much storage to allocate and it will automatically fill the remaining space that you're not using with cached chunks of other peoples' files, essentially "donating" your extra resources. When you fetch a file, your computer will purge the LRU chunks and replace it with that data you just fetched and store that in the cache. This way, the more people who access a file, the more widely distributed that file is cached.
For example, Cloudflare hosts an [IPFS gateway](https://blog.cloudflare.com/distributed-web-gateway/). Since it's in their interest to deliver these files as fast as possible, their nodes which fetched these files from the IPFS network will have them cached and available to anyone else who requests said files. While it's definitely not the same concept in terms of incentive/resource intensiveness/authority, my hope is that IPFS will work well for the same reason things like DNS works effectively. Time will tell on this one.