If you're just looking to return the month you could change the day value in mktime to 1 or anything <= 28. When doing stuff like this I'd normally give a time midway through the day to avoid day light savings problems as well.
Code:
=date("F",mktime(6, 0, 0, date("m")-3, 1, date("y")));
Edit: Just realised you need the end date of the month. You can use the t value in date to return the number of days in the given month, that should work.