Arduino shields are boards that are specifically developed for use with Arduino or Arduino like microcontroller boards. The main features of Arduino shields are designed in a way that when stacked on an Arduino board their corresponding pins are connected. To use a shield with an Arduino board, the only thing you should do is to stack the shield on your Arduino board and write a program suitable for the shield.
Arduino shields are designed aiming at different purposes, but all of their pinouts are suitable for Arduino Uno R3 pinout. Therefore the shields can be used with all Arduino boards with simple modifications. Arduino shields are generally designed as motor drivers, ethernet and wifi connections and LCD displays. Besides these there are shields designed to be used with specific products like gShield or xBee shields.
The best feature of Arduino shields is their being easy to use. Different shields can be stacked together and be used with a single Arduino board assuming there will be no pins conflict. In case of pin conflictions, the shields can be used with little modifications. Arduino shields are suitable for projects that can offer small dimensions for electronic parts. Since this situation is seen frequently in mobile robots Arduino shields are commonly used in these applications.