Hi David,
I've mainly used MS Project with some Primavera in a past life. Right now I'm running an internal project to roll out MS Project Enterprise Server to fully integrate our Project Planning/Tracking and Resource scheduling functions.
I quite like MS Project especially the later versions, most especially multi-level undo which has finally appeared in MSP 2007. Resource levelling can be a bit brain dead and creating hammock tasks is far from obvious but it has good EVA support and intgrates well with other Office suite apps.
One addition I'd ereally like to see would be a true scheduling function rather than basic resource levelling - i.e. get the tool, whilst obeying dependencies, resource availabilities, and milestone constraints try to find the optimum time phasing of tasks based on some preset criteria (e.g. min overall duration, min parallel resource count etc) A company called iLog used to make a C++ class library called scheduler which was built on another tool they made called solver which did this stuff.
However, at the end of the day though it is just a tool - and regardless of how good any PM tool is it won't make up for a poor ProjMan.