I have used Microsoft Project for resource management quite a bit, both as a Functional Manager and a Project Engineer. MS project allows projects to share resources (with some limitations), so I will typically setup a independent project consisting only of resources. I will then draw resources from this project to staff all actual projects. The resource project basically defines the department capability.
The resource project then shows resource conflicts, and provides methods to allow for manpower forecasting, and shows the effects of manloading across projects. It provides reports to show who will be working what, when, and supports hiring/thinning decisions. This requires a format for all projects to be established and followed. Although straight forward, don't underestimate the effort required to keep it straight. And this is not integrated with the finance/time record system. Be nice if it was.
There are also enterprise versions of MS Project that handle some of the legwork required, I have not used these. I would suggest trying the method above on some test projects, to see if you need the power of the enterprise based solutions. But the most important aspect of either approach is to adhere to a resource definition format, and make sure it is compatible with your finance methods.
This tool provides actuals, to see who is spending time on which project. In a modern, agile organization, it may be difficult to keep track on which efforts are being worked, and this will help determine whether the appropriate effort is being applied to the most important projects.