Brian, you should really investigate the use of Pivot Tables.
Attached is an example based on your sample data.
If you opt against Pivot Tables (most efficient option) then you should - given your use of XL2007 - use SUMIFS rather than SUMPRODUCT esp. if you have lots of unique dates to return data for - the latter is not efficient used en masse or with big data sets.
If backwards compatibility is an issue then 2 SUMIF functions would be equally viable (or a new field at source which normalises the dates to 1st of month thereby allowing for basic SUMIF)
FWIW - re: SUMPRODUCT
given the explicit coercion taking place in the above (*) it's imperative that the sum_range (B1:B100) contain no non-numeric values (eg text strings like header values)
The alternative / preferred option would be to avoid the explicit coercion of sum_range altogether unless explicitly required, ie:
Bookmarks