Chris, from PyroElectro.com, proposes a comprehensive tutorial on how to make a simple, yet effective, Arduino-based tachometer.
The circuit is very simple: an IR led is coupled with an IR phototransistor to detect possible interruptions of the light beam, while the Arduino is responsible to calculate the time interval between two such events. Finally, a LCD is used to display the current RPM to the user.
To validate his project, a typical computer fan has been used in the set-up and the outcomes have demonstrated to be very close to the true RPM value (2600 +/- 100 RPMs).
The bill of materials, as well as the schematic, the source code and a detailed tutorial on how to build the circuit is available here.
For more detail: A simple Arduino-based tachometer