Display posts from multiple user roles

// Query user data on admins
$administrators = new WP_User_Query( array( 'role' =>  'administrator' ) );

// Query user data on contributors
$contributors = new WP_User_Query( array( 'role' =>  'contributor' ) );

// Save admin IDs
foreach( $administrators->results as $u )
    $user_ids[] = $u->ID;

// Save contributor IDs
foreach( $contributors->results as $u )
    $user_ids[] = $u->ID;

// Little cleanup
unset( $u, $administrators, $contributors );

// Save paged value (for paginating results)
$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1; 

// query_posts()
query_posts(
    array( 
        'post_type' => 'post',
        'author__in' => $user_ids,
        'paged' => $paged
    )
);

// If the query has data
if( have_posts() ) :

    // Post loop
    while ( have_posts() ) : 

        // Setup post data
        the_post();
        ?>

        <!-- Do HTML markup and template tags here, eg. the_content(), the_title() etc.. -->
        <h1><?php the_title(); ?></h1>

        <?php
    endwhile;

// End "If the query has data"
endif;

@1fixdotio : WP_User_Query returns an object of each user. WP_Query takes user ids only so we have to extract the ids from the user objects. I think that is the only mistake there.