This has sort of been said already, but you can set the default dates in a parameter to the results of a SQL query/SSRS dataset. For example, the query below returns the first day of the current month and the last second of the day before today. In the Report Parameters management screen, you would set the default for for Start Date to the results of a query, and you would choose this dataset and Start Date for the value and label columns. You'll do it the same way for the End Date.
select dateadd(mm,datediff(mm,0,getdate()),0) [Start Date],
dateadd(s,-1,dateadd(dd,datediff(dd,0,getdate()),0)) [End Date]
Being able to set parameter defaults to the results of a query makes pretty much anything possible.