How can I get the featured image or the first image for a post/page and display it as a banner?

You can use the featured image (or featured thumbnail) for this type of functionality. You can control which size of the image you use… it doesn’t have to be the “thumbnail” size. From the codex:

get_the_post_thumbnail(get_the_ID(), 'thumbnail');     // Thumbnail
get_the_post_thumbnail(get_the_ID(), 'medium');        // Medium resolution
get_the_post_thumbnail(get_the_ID(), 'large');         // Large resolution
get_the_post_thumbnail(get_the_ID(), 'full');          // Original resolution

get_the_post_thumbnail(get_the_ID(), array(100,100) ); // Other resolutions

In your theme, this function needs to be echoed in order to display the image, so your loop might look something like this:

while have_posts(): the_post();
    ?>
    <h2><?php the_title() ?></h2>
    <? echo get_the_post_thumbnail(get_the_ID(), 'large'); ?>
    <? the_excerpt();
endwhile;

There are other examples and more options to this function on the reference page.

—- Addendum —-

As Andy mentions below, you can also add your own custom sizes to the list of possibilities. Add a few lines of code to your functions.php file:

function my_image_sizes()
{
    if ( function_exists( 'add_theme_support' ) ) {
        add_theme_support( 'post-thumbnails' );  
    }

    if ( function_exists( 'add_image_size' ) ) { 
        //300 pixels wide (and unlimited height)
        add_image_size( 'category-thumb', 300, 9999 ); 
        // Cropped to exactly 220px wide and 180 high
        add_image_size( 'homepage-thumb', 220, 180, true ); 
    }
}
add_action('init', 'my_image_sizes');

Then you can use those custom image sizes in get_the_post_thumbnail(). There’s a full explanation on the Codex.