Ok ... here you go. You have dates in column A, and data in column B, say starting at A3 and B3. Make sure they are sorted in increasing order of date. At cell C3, enter the number 1. At cell C4, enter this formula:
=if(or(month(A4)>month(A3),year(A4)>A3),1+C3,C3)
Copy this formula down the column for as long as your data. This will create a list of unique month-numbers. Say the first two dates are in January 2003 and the third date is in February 2003. C3 and C4 will equal 1,and C5 will equal 2. If your last month is Dec 2006, the last entry in colum C should be 48 as the 48th month in the data set. Lets say you have 100 data points, so your last entry should be in row 102.
Now create a column of months/years you want to summarize. Say, enter 1/1/03 if that is your first month at cell G3, followed by 2/1/03 at G4. AutoFill these two down for as long as you have months to analyze. You can date format that column so only "Jan-03" etc shows up. You should end up with 48 entries, matching the 48 months of your data.
To the right of these month entries, enter 1, 2, 3, etc at H3, H4, etc. to number the months of your data. This total should match the final number determined above (48, in my example).
Now, finally, to the right of the first month number, at I3, enter:
=sum(($C$3:$C$102=H3)*($B$3:$B$102))
Again, use ctrl-shft-enter to enter this formula, and copy it down the length of column I. You should get your answers.
Seems rather inelegant, but I think it works.