Yup, you can absolutely use our new VB Script layer to handle this sort of request. This can look a little wild if you are not used to VB script but it works. Here is what you would put in place for a variable where you wish to pull the first day of last month:
%{DateSerial(DatePart("yyyy",DateAdd("m", -1, Date)),DatePart("m",DateAdd("m", -1, Date)),1)}%
Putting this into human, we are forming a new date (DateSerial) using the year portion of last month (which we determine by taking the current date and subtracting 1 month using DateAdd), the month portion of last month using the same technique, and filling in 1 for the day.
And here is one where you grab the last day of last month:
%{DateAdd("d", -1, DateSerial(DatePart("yyyy",Date),DatePart("m",Date),1))}%
Putting this into human, we are subtracting 1 day from a date we created by taking the current year, current month, and 1 for the date.
These could have possibly been simplified if you didn't care as much about making it correctly handle a transition from one year to the next but the way it is written here should work in that scenario correctly.