There are 2 very good plugins for control over page/post titles, descriptions, keywords, etc:
These plugins work very well, and will override any of the code below **** note for a static home page the title will follow the main admin settings, not the title given to the page assigned as home.
But for those of us who like to know how to do it the hard way, the title coding can be modified in the header.php file in a number of ways:
http://www.sicanstudios.com/how-to-customise-the-title-tag-in-wordpress/
<title>
<?php if ( is_single() ) { wp_title(‘ ‘); ?> » <?php bloginfo(‘name’); ?><?php }
elseif (is_category() ) {single_cat_title(); ?> » <?php bloginfo(‘name’); ?>
<?php } elseif (is_page() ) {wp_title(‘ ‘); ?> » <?php bloginfo(‘name’); ?>
<?php } else { ?><?php bloginfo(‘name’); ?> » <?php bloginfo(‘description’); ?><?php }?></title>
http://www.ceoblogwatch.com/2009/01/25/wordpress-title-tags/
<title>
<?php if ( is_home() ) { ?><?php bloginfo(’name’); ?> | <?php bloginfo(’description’); ?><?php } ?>
<?php if ( is_search() ) { ?><?php echo the_search_query(); ?> | <?php bloginfo(’name’); ?><?php } ?>
<?php if ( is_single() ) { ?><?php wp_title(”); ?><?php } ?>
<?php if ( is_page() ) { ?><?php wp_title(”); ?> | <?php bloginfo(’name’); ?><?php } ?>
<?php if ( is_category() ) { ?>Archive <?php single_cat_title(); ?> | <?php bloginfo(’name’); ?><?php } ?>
<?php if ( is_month() ) { ?>Archive <?php the_time(’F’); ?> | <?php bloginfo(’name’); ?><?php } ?>
<?php if ( is_tag() ) { ?><?php single_tag_title();?> | <?php bloginfo(’name’); ?><?php } ?>
</title>
http://codex.wordpress.org/Function_Reference/wp_title
<title><?php bloginfo(‘name’); ?> | <?php is_home() ? bloginfo(‘description’) : wp_title(”); ?></title>