What I find most attractive to Maven is how you define what the build result must be instead of defining the build process. Ant files are just a Makefile in XML in which you need to define the build order, the target dependencies, the compile command, the jar command, the test commands etc. With Maven you just need to tell the result must be and JAR file and what the dependencies are. This is slightly simplified but should given an idea how easy it is.
offtopic:
Currently I know two IDE’s which support Maven; Eclipse and NetBeans. Eclipse uses the M2Eclipse plugin which plugs into Eclipses build mechanism and provides a different CLASSPATH to Eclipse based on the task executed. I had the impression the CLASSPATH presented by M2Eclipse was not always the CLASSPATH you expected (and was different to the mvn cmdline tool) which caused some projects not to run. Also, the M2Eclipse plugin tries to do project references in eclipse to other projects in a module pom file but this messes up the CLASSPATH even more. It feels like M2Eclipse is just another Maven implementation which does not the same as you would expect form the ‘real’ maven.
NetBeans just uses the cmdline mvn (which is bundled btw) to execute the various build steps. At first this seems somewhat cheap and ‘oh, they did take the easy solution’ but after two days I had almost no complaints at all.
Chris