There's a nifty feature in the new IntelliGantt products that we've seriously under-represented. In fact, I just put up a new screencast that mentions it (Tour Project Features).
If I recall, I believe this feature came as a result of a request from Siemens. Their project managers had grown rather cross with dumb milestones. They had gone through the trouble linking milestones to tasks, but then pointed out the futility of their efforts as these milestones behaved as individual entities.
For example, even if all the predecessor tasks of a milestone were to be incomplete, or even late, a milestone could still be marked complete. This made it rather difficult for project managers to filter large projects such that only milestones would be visible. Actually, it wasn't the filtering that was hard, it was the ambiguity of the milestones themselves-- would you trust a completed milestone not knowing the state of its predecessors?
TeamDirection went about solving this problem, and the solution ships with IntelliGantt today. We made our milestones, er... intelligent. If a milestone has a predecessor, then that milestone reflects the status of its predecessor. If the predecessor isn't complete, then the milestone isn't complete.
In fact, this works on down a chain of predecessors. For instance, if the immediate predecessor of a milestone is on track, but its predecessor is behind, then the milestone will be behind. A milestone is only shown as completed if all its predecessors are completed! This lets project managers (or other interested parties) filtering on just milestones get a more accurate read on areas of the project that may have problems.
Displaying accurate information and identifying potential issues as soon as possible gives you more time to communicate issues and make corrections-- both of which help your projects succeed.
TeamDirection has a 15 day free trial so you can try out some intelligent milestones today.