How to do this would depend on the structure of the data in your table.
The simplest possible solution is to define two summary fields and select the running total option. Then use the "restart totals when grouped by" option to restart your running total for each month.
You can use the following calculation field as the "group by" field so long as you also include that field in your sort order:
TransactionDate - Day ( TransactionDate ) + 1 // select Date as your result type.
This calculation computes the date for the first day of the same month for all dates in that month/year.