Can I suppress PHP error messages for authenticated users, BUT display all of them for an admin?
I haven't tested this but I would think you could turn that setting off completely, and enable it again yourself in a custom module:

function MYMODULE_init() {
  if (user_access('a permission only admins have')) {
    error_reporting(E_ALL);
  }
}


Update

Per your comments, it looks like this way doesn't work, but what does work is to do exactly the reverse of the above. That is, to set the error reporting to "All messages" in the UI, and then use hook_init() to surpress the unwanted levels of error message.

I would say your suspicions are correct, that Drupal is handling the errors at a lower level and so turning them off all together stops calling error_reporting() in hook_init() from having any effect.