The COUNT command works very well for this function if used correctly. I have used it to measure frequencies up to 54 MHz using a 16F818 with a 16 MHz osc.

The trick is to use a divide by N chip external to the PIC. This gets the input freq into an acceptable range. Remember that the highest count rate the PIC can make is about 100 KHz with the 16 MHz osc. The freq resolution is then simply determined by how long you measure (and the stability of the system).

COUNT has sample rate limitations as mention. As others have statted, you can go direct faster if you write a dedicated program ... beware of aliasing.