Things to consider when picking an Arduino board:
- Do I want native keyboard/mouse support? If yes: you'll need the Leonardo (or it's breadboard mountable equivalent) or the TRE (not released, dual MCU board).
- Do I want a small form factor and/or have it breadboard mountable? If yes, choose a board like the Mini/Micro/Nano/etc.
- If you want to make it even smaller, either get a board without USB built in or try using an ATTiny
- Am I computing large numbers with it? If yes: use the Due, Galileo, or TRE (not released yet)
- Do I want video/audio? If yes: TRE is the only way to go as of now (but it's not released yet).
- Do I need a USB host (and not want to have an external shield)? If yes, use the Mega ADK (limited support), Yun, TRE (again, not released yet), or Galileo.
- Do I need WiFi/ethernet built in? If yes; use the Yun, TRE (still, not released yet), Ethernet board, or Galileo.
How many pins do I need (and how many of each type)?
- Digital: simple ON or OFF. Use these for buttons, simple lights, some communication, etc.
- Stay away from the Due if you don't want to mess with 3.3V logic. Most other boards are 5V. You can work around this with either voltage dividers (doesn't always work) or level shifters. As far as I know, you can't really do much if a sensor provides max 5V; level shifters AFAIK only work with digital signals.
- UART Pins: these are the pins that you can use the serial library on. (Note: this doesn't include the software-serial library). One of these on most boards is connected to a USB chip.
- SPI Pins: These are pins which are used by a form of communication (like on the Ethernet shield).
- Inturupt Pins: These can trigger an event when the signal getting sent to the board changes. There are a couple of different settings, but this can be used for near-instant response time when low latency is critical.
- PWM Pins: pins that go on and off to simulate a lower voltage. It does this by turning it on and off very rapidly. This is used often for dimming LEDs and controling the speed of a motor.
- Analog pins: pins that can read a voltage and convert it into a number.
- The Arduino Due has a much higher precision rate, as it has more possible values and it has less voltage, thus much more accuracy.
All of these types of pins can act as a digital pin. All of these, except the analog pins, are under the "digital pin" section of your Arduino board. I didn't go into the technical aspects of the pins; I explained then in the simplest way I could.
I left a lot of boards out of this list, but this should give you some things to think about when choosing a board. There's a lot of weird quirks with this list, so it's incomplete, especially with the types of pins. You'll just have to do research and figure out what you need and if a board can meet your needs. Just make sure to not plan two things on the same pin, especially when mixing different shields and sensors! Shields do take up pins.
Shields: they are pretty much compatible with every board except for if the board is 3.3V (newer shields can adapt automatically) OR if it's a breadboard mounted board, like the Nano. There are ways to work around this problem, but it's very difficult.