That is a good question and one you will have to do some question
asking on your end. Basically what you need to do is a scope analysis
of what you need in a system and then go and match those requirements
with the plethora of systems that are out there.
What makes a good system is one that is scalable and has a good ROI (Return on Investment).
The technologies involved also makes a difference on manageability and your ability to upgrade and modify the system.
But it is hard to ascertain what system would be best for you without
finding out what is YOUR requirements, scope, intended audience, your
developers abilities, and of course how much you are willing to invest.
Things you have to also consider is what and how you will handle work
flow and document management.......
___________________