Pooling Layer usually uses a max-pool operation on a small spatial extent to reduct spatial size.
Pooling Layer is gradually falling out of favor, as people realize the same thing can be done in Convolution Layer as well.
Pooling Layer is used to reduce spatial size in output, thus reducing the number of parameters present in the network. This further helps controlling overfitting.
Pooling Layer is mostly used immediately after ReLU Layer.
Pooling Layer is always labeled destructive, in the sense that down-sampling tends to remove useful information if done carelessly. For this reason, Pooling Layer should use a tiny receptive field(2-3), or it should be avoided completely.