I came across a nice article by Bryan Syverson on dates and times in SQL Server. I was looking for a single-line-type-of way of eliminating the time from a DateTime variable in SQL Server and the article suggested the following.

CAST(FLOOR(CAST(@SomeDateAndTime AS FLOAT)) AS DATETIME)

The idea is to cast the DateTime variable to a Float and use Floor to lose everything after the decimal point. For more information on why this works have a read through the article and then also have a read through this reply to the article which sets a few things straight.