I actually kind of like header files. I find that they can nicely separate external interfaces from internal interfaces. They also can summarize an interface nicely.
They are not without problems. Complete template definitions, default circular includes. Not supporting partial classes. Ect.