echo category description in single.php

Try the code that follows the screenshot:

Displaying WordPress Category Description
(source: mikeschinkel.com)

<?php
  $categories = get_the_category();
  foreach($categories as $key => $category) {
    $url = get_term_link((int)$category->term_id,'category');
    $categories[$key] =
      "<dt><a href=\"{$url}\">{$category->name}</a></dt>" .
      "<dd>{$category->category_description}</dd>";
  }
  echo "<dl>\n" . implode("\n",$categories) . "\n</dl>";
?>

Also, <?php echo category_description(the_category_id()); ?> doesn’t do what you think it does. What follows will work on your category pages because it assumes the category ID for the category page:

<?php echo category_description(); ?>

FYI, the_category_id() will echo the value of the current category ID, it doesn’t actually pass anything to category_description() is looks like was your assumption. Besides, the_category_ID() is deprecated so you wouldn’t want to use it anyway. By the way, I’ll bet you are seeing an errant number being displayed just before the category description is displayed?