DateSerial(Year(Date), Month(Date) + 1, 1) would give you the first day of
the next month.
DateSerial(Year(Date), Month(Date) + 1, 1) - 1 would therefore give you the
last day of the current month.
DateSerial is smart enough, though, to handle "unusual" values, so
DateSerial(Year(Date), Month(Date) + 1, 0) is the equivalent to
DateSerial(Year(Date), Month(Date) + 1, 1) - 1
Just as a demo of how flexible DateSerial is, DateSerial(2004, 1, 60) will
give you 29 Feb, 2004, whereas DateSerial(2005, 1, 60) will give you 1 Mar,
2005. DateSerial(2004, 0, 0) will give you 30 Nov, 2004 (the 0 for month
will give you the last month of the previous year, and the 0 for day will
give you the last day of the previous month)