%LAST evaluates a measure or numeric expression for the last non-empty member of a set, so I do not think that is what you want.
I am using %LASTCHILD, but you cannot append it to [DateOfSale].[Actual].[MonthSold].Members because %LASTCHILD only works on specific member. For the moment I found this solution:
WITH MEMBER [DateOfSale].[LastDayOfMonth] AS '[DateOfSale].[Actual].[MonthSold].CurrentMember.LASTCHILD'
SELECT [Measures].[Amount Sold] ON 0,