Seperate admin page for each role
There's a number of ways you can accomplish this, here's a few off the top of my head (in no particular order):


Create a normal page node and use Node Privacy by Role, a module which allows you fine-grain access control on a per-node basis using roles.
Use Views to create an admin page and limit the access using Views's "Access Restrictions."
Use Panels to create an admin panel and limit the access using Panel's "Access Restrictions" (very similar to Views).
Use Contexts, create an admin Context and display the content conditionally.


Basically, there is no best or worst way, it all depends on how your current site is set up.  For example if you are already using Panels, it might make sense to go that route, etc.

Personally, I would use a mixture of Contexts and Views!