If you need a multi-platform build system that runs on Windows, OSX, Linux, supports the platform's native compilers, and that also works for IDEs, GNU make is simply not an option. Then add cross-compiling to Android, iOS, emscripten, NaCl, game consoles etc... and cmake suddenly looks really nice. I've been using manually written makefiles years ago (around end of the 90's), but then also had to support Visual Studio projects, so I wrote a Tcl script which could generate makefiles and Visual Studio project files from the same project description, this soon became a problem because I also wanted to use Xcode and Linux IDEs, and also because Visual Studio project files change between versions. Cmake does the same and much more (there are also other, similar systems like scons or premake, but cmake seems to have "won"). CMakeFiles ain't pretty, but I never encountered a build problem (including more complex stuff like code generation or running custom build steps) I couldn't solve without pulling my hair out, and everything works automatically across IDEs and platforms.
[edit: typos]