I've come across this too. I'll mention a workaround I've used, then mention an idea that I haven't tried yet. One option is to schedule the reports for the first of every month and the underlying queries are geared to filtering on day up to the last of the month. So in a month like Feb with 28 days, report schedule runs at midnight on March 1 but the queries are looking at only Feb. Another idea could be to event Event Studio to create an agent containing a statement looking for where the max date of the current month = the current date. When that value is true, then the agent is configured to kick off the report. This eliminates, hypothetically, the slight lag in my previous way of handling this. Then you schedule the agent to run every day at a certain time, let's say at 11:50pm, to simply check whether it's the last day of the month. When it doesnt evaluate to true, the report doesnt run. When it does, it does run.
One afterthought is exploring triggers created on the server to perform this date comparison; create a name for the trigger on the server; then simply use the report scheduling tool to use that trigger name. I'm more confident in the Event Studio idea because that can all be done from the UI. Triggers, at least for me, require someone will DBA access to create which is a dependency that would slow be down.
Let me know what works for you!
------------------------------
Logan Whitaker
------------------------------