Howard,
It is typically helpful to give what SQL you have tried, so we can show you what needs to be corrected to fit your needs. If it is a complex question then table layout and some sample data would, also, help.
As Nick states the MAX() function works perfectly in all cases, so there is obviously something wrong with the SQL that you wrote or the data involved.
Something like the following should do what you are after:
select user, max(date)
from table....
where...
group by user
Dave