What is Cooking Packages for?

Whenever I go to package a project on a different platform I see this in the official tutorials of unreal having this option checked, but basically what is it and what effect does it have on the final project?