remove menus for a specific role?

Here is your answer:

function remove_menus () {
global $menu;

if( (current_user_can('install_themes')) ) { 
$restricted = array(); } // check if admin and hide nothing
else { // for all other users


if ($current_user->user_level < 10)
$restricted = array(__('Dashboard'), __('Posts'), __('Media'), __('Links'), __('Pages'), __('Appearance'), __('Tools'), __('Users'), __('Settings'), __('Comments'), __('Plugins')); // this removes a lot! Just delete the ones you want to keep showing
end ($menu);
while (prev($menu)){
    $value = explode(' ',$menu[key($menu)][0]);
    if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
}
}
}

add_action('admin_menu', 'remove_menus');

You can tailor this to suit whatever role the user has by adjusting the if( (current_user_can(‘install_themes’) argument

See here for more
http://codex.wordpress.org/Function_Reference/current_user_can