I like Template Toolkit, but that's probably because it's what I use the most. Here's what I like about TT.
Default syntax stands out from HTML (however, I believe you can change the default HTML::Template syntax if you want.)
You can call methods on objects passed to your templates. Some people abhor this, but I like to do it for Class::DBI and DateTime objects.
TT has built in methods for iterating over hashes and arrays, whereas with HT you have to coerce things into an AoH to iterate. TT even allows recursion.
It's easy to install new VMethods in TT for doing things to arrays and hashes (and scalars.) This can be a real time-saver if you don't want to do these things in your Perl code.
TT has a lot of plugins available, for handling everything from LaTeX to DOM stuff within your templates.
You can embed Perl in your templates. This has never seemed like a good idea to me, but it's there if you want it.
You might also want to read a bit about HTML::Mason, which lets you embed Perl in HTML, PHP-style.