Background: I have used ANT (yes make and its variants too) a lot, recommended it for creating our own build system at a company I worked. At that time I realized that Ant has challenges addressing the needs of enterprise wide build system. In a project project involving multiple components, which are shared, ant doesn't make it easy to inherit build files, or make it parameterized. Compiling and testing components selectively based on its dependency isn't easy to do in Ant.
Ant doesn't work well on the deployment side of the picture (yes I know it has ftp etc). After developing very complex ant files (with custom coding) we could achieve what we wanted, however the effort is definitely not for Joe SMith who just wants to get the job done.
Then comes maven. Conceptually I have problems with a build system, which downloads components as needed, assumes internet connection etc. It just doesn't fit into a easy to use model, rather it tries to mold us to its mindset.
Now obviously creating a new build system from scratch is not the way to go. I think we should build upon Ant. However Ant by itself is only a part of the story. Lots of development needs to be done to make it to the stage where you can deploy it easily and in a standardized way across projects.

You have all used a build system or other or may have even developed one. I want to know from you what would you like to see in an ideal build system, what problems solved. Suggestions, gripes, ideas welcome.

Note: In response to Kevin Dangoor's comments:
Kevin,
There is no doubt that Ant is a decent piece of software. And I too have used the Ant scripting facility and Java tasks. My point is that Ant doesn't solve the whole picture, though it forms the core of it, there are still a lot of work needed to make it suitable for a enterprise and that work is not easily doable by the normal release engineers (who are mostly perl hackers).