Well a true sine wave has a positive and negative voltage values over time and an Arduino analog input pin can only safely measure positive voltages, usually from 0-5vdc, however one can change the maximum value to utilize a lower upper limit thus increasing resolution for lower level signals. So you are correct to understand the need to bias the signal before wiring to the Arduino.
One method would be to feed the sine wave into a simple comparator op-amp and use the PulseIn() statement to measure the low or high time period of the then square wave and then compute the frequency from that value.
http://arduino.cc/en/Reference/PulseInLefty