Both.
If I wanted a list of users, I might want to sort it by the registration date; or by paid vs not paid. If I wanted a list of events, I might sort it by event date or # of attendees. So I would do an initial sort of the data on the server in the way I feel the data is best sorted.
Then, if the user wants to sort the data a different way; say, sort the attendees of an event alphabetically - that'll be the client side sort.