The third parameter is very useful because it allows us to use the one function for MonthToDate and QuarterToDate to compare Year-on-Year or dynamically change between YTD, MTD and QTD (there are functions InMonthToDate and InQuarterToDate that could be used but they would require different Year offset calculations and are less easy to make dynamic use of)
YearToDate(date_value, 0, Month(Today()))
gives us Month to date this year.
YearToDate(date_value, -1, Month(Today()))
gives us Month to date last year.
With a handy use of the Ceil function, we can also calculate Quarter to date:
Ceil(Month(Today())/3) * 3 - 2
This value will always return the first month of the quarter containing the Month number passed (in this case, Month(Today()) )