I don't know MySQL so you will have to translate it.
The first step is to target the Max entered date for each month.
You do this by grouping on the year and the month of all entries whilst selecting the max day of the month.
In MSSQL this would be:
SELECT
[Year] = DATEPART(Year, EntryDate),
[Month] = DATEPART(Month, EntryDate),
[Date] = MAX(DATEPART(Date, EntryDate))
FROM
MyTable
GROUP BY
DATEPART(Year, EntryDate),
DATEPART(Month, EntryDate)
You then join to this as a sub query to select your desired value.
SELECT
mt.EntryDate, mt.Amount
FROM
MyTable mt
INNER JOIN
(
SELECT
[Year] = DATEPART(Year, EntryDate),
[Month] = DATEPART(Month, EntryDate),
[Date] = MAX(DATEPART(Date, EntryDate))
FROM
MyTable
GROUP BY
DATEPART(Year, EntryDate),
DATEPART(Month, EntryDate)
) t
ON
DATEPART(Year, mt.EntryDate) = t.[Year] AND
DATEPART(Month, mt.EntryDate) = t.[Month] AND
DATEPART(Date, mt.EntryDate) = t.[Date]
ORDER BY
mt.EntryDate DESC
You then provide the ordering on the outer part which doesn't effect your matching to the max date of the month.