Reading in a Tacho input from a fan.

Hi Guys,
Has anyone done this? Hardware wise i'm all set.
I'm just working on the software now.
I would normally use a hardware counter to count the tacho input and then at a certain time base, read and reset the hardware counter.
Does the AVR and/or Arduino support such a thing and if so how would i set it up?
Would it require the use if the timers??
I'm planning on controlling a couple of fans as well, so i could do with keep the PWM functions avaiable (which use the timers).