Drupal 6's updated theme() function creates considerable more support for templates. If you've even looked at a Drupal 5 theme's files or the Drupal 6 core, you've seen them. They're the little .tpl.php files.
A template is a file designed to be friendly to the typical administrator. There is not supposed to be any complex PHP code there, because that would scare off many a user. They're lightweight files used to generate the equivalent of what a theme_function does. Variables can be passed into the template for use through a nice php function, template_preprocess_template_name().