This is a great value TEN PACK of 16x2 Character LCD Shields for Arduino - White on Blue from PMD Way. The shield uses the standard HD44780-compatible driver IC, which is perfect for the default Arduino LiquidCrystal library.

The colour is white on a blue background, and you can adjust the contrast with the trimpot on the top-left of the shield. Furthermore the ICSP/SPI pins are broken out so you can re-flash without removing the shield. Please note that this is a 5V shield, so not for your Arduino Due or other 3.3V boards.

The five buttons (directions and select) are connected to only one analogue pin - A0, so you can read the button status without using any extra digital input pins. 

For Arduino users, the initialisation line in your sketch needs to be: LiquidCrystal lcd(8, 9, 4, 5, 6, 7);, otherwise the pinouts are:

Analog 0 Button (select, up, right, down and left)
Digital 4 DB4
Digital 5 DB5
Digital 6 DB6
Digital 7 DB7
Digital 8 RS (Data or Signal Display Selection)
Digital 9 Enable

 

 More information: