create a new table called
numbers, containing only one column called
n, the primary key, and populate this table with the numbers 0 through whatever large number you want that will cover the number of dates between your first date and last date
then
Code:
SELECT DATEADD('day',n,'2010-01-01') AS thedate
FROM numbers
WHERE DATEADD('day',n,'2010-01-01') <= '2010-05-01'