Si las fechas que deseamos comparar son de tipo DateTime debemos tener en cuenta que las fechas incluyen Dia, Mes, Anyo, Minutos, Segundos y Milisegundos. De esa forma, una fecha '15-02-2007 59:59.998' es valida para nuestra consulta.
-- Declaramos las fechas inicial y final respectivamente
DECLARE @FechaInicial AS DATETIME
DECLARE @FechaFinal AS DATETIME
-- Asignamos las fechas (Pueden ser recibidas en un
--stored procedure)
SET @FechaInicial = '16-01-2007 00:00'
SET @FechaFinal = '15-02-2007 00:00'
--========================================================
-- Si los valores son recibido en un Stored, es necesario
-- verificar que realmente queden en el formato anterior.
SET @FechaInicial = CONVERT(VARCHAR,@FechaInicial, 105) + ' 00:00'
SET @FechaFinal = CONVERT(VARCHAR, @FechaFinal, 105) + ' 00:00'
--========================================================
-- A la fecha final le sumamos un 1 dia, y obtenemos todas
-- las fechas que sean igual o mayor a '16-01-2007 00:00'
-- y sean menores a '16-02-2007 00:00'.
-- Mucho cuidado, ya que si la @FechaFinal tiene siquiera
-- milisegundos, podemos llegar a obtener registros no deseados.
SELECT *
FROM TuTabla AS T
WHERE (T.Fecha >= @FechaInicial AND T.Fecha < DATEADD(DAY, 1, @FechaFinal))