Actually, I asked this same question a long while ago. The wp_head() function in your header is *perfect* for this.
For the record, there *are* plugins that will do this for you, but the solution I got was pretty cool, too. The basic solution was the following (provided by Otto)
Open up Notepad, and put this in:
<?php
function add_some_meta_flavor()
{ ?>
<title><?php echo $title ?></title>
<meta name="description" content="<?php echo $description ?>" />
<meta name="keywords" content="<?php echo $keywords ?>" />
<?php }
add_action('wp_head','add_some_meta_flavor');
?>
Save the file as "functions.php" and upload to whatever theme folder you're using. If you already *have* a functions.php file, then just add the above code to the bottom of it.
Now, on your Pages that you want to have different keywords and titles, at the very top of the Page template file, just add in:
<?php
$title = "title for the Page here";
$keywords = "keywords here";
$description = "description here";
?>
Then when the page is called up, it'll see your variables in the Page template and call in whatever you've specified for each Page. The drawback to this method is that you have to create a Page template for every single Page - but I would say that you could probably create *one* and use conditionals to send the right stuff to the correct pages.
It's worked like a charm for me for quite a while :)