There's a time and a place for these sites.
Especially when the hotel is small and not English speaking, a major booking site is often better than booking direct.
Also with airlines, they can do trips you can't do with the airline direct, such as multicity or combining two airlines. I recently booked a multi city Avianca trip through Expedia, you can't do this through the Avianca website.
I usually book direct but to say these sites have no purpose is equally wrong.