Add a unique Banner Image to each page
This method is pretty similar to what Shoaid Nawaz has said above. For Drupal 7, you can use the Views module. Coupled with a custom theme region, you can create a block using the views module which will show an image for each node from a custom image field specified for the content type. You need to have a basic working knowledge of the Views module.

Here is how:


Create a custom theme region, name it something like "Banner Region"
In your content type, add an image field, name it something like "Banner image". If you need description, enable Alt tags for the image field. If you do not need slideshow, restrict the number of image to 1. For slideshow, you can use the views_slideshow module.
To create similar sized banner images, you can create a new image style.
Create a new View. Name it something like "Banner". Choose "block" display and not "page".
In the filter criteria, choose your content type.
Add a contextual filter for "Content: Nid" and save the view.
Now go to the your blocks administration page and add the newly created views block to your new banner region.


In short:


Banner image is a new image field in an existing content type. 
Views module understands which image is attached with which node using the contextual filter.


Tip: You might want to disable this block on the frontpage if your frontpage is not a node.

Further tip: You might consider adding other content types to the filter criteria if you banners for multiple content types. Alternatively, you can create a block for each content type and block control visibility using "No results behaviour" in the views' settings.