Goal
Pooling layers are mostly there for dimensionality reduction. They help the network to reduce the spatial size of the feature maps. We can then add another convolutional block that will be applied on a different scale (Scale separation, ml architecture context).
They introduce a form of feature hierarchy, where lower layers capture the more fine grained features, while higher layers capture more abstract and global features.
Furthermore they help achieve translation invariance, since the position of an object won't affect the prediction anymore. How to think about model architecture#Equivariance
Functionality
Similar to Convolutional Layers, they usually apply a filter onto a region, compressing it to a single value.
There are different types of filters (different types of pooling layers).