I personally always use templating engines in php, python or whatever.
The first obvious reason already mentioned by others:
It's forces you to not use any business logic in your templates.
Yeah sure, discipline would do just fine, when you have it.
But this is just a tiny aspect of why you would use a templating engine. Most of them are more than just an engine and could be considered templating frameworks, whether you like it or not.
For example, Smarty also has advanced caching features like partial caching. Really useful stuff, things you would have todo all by yourself when using just php as templating language.
And please do not forget all those really useful helper functions just a quick search away in the docs. Most of them also provide an easy way to plugin your own functions and/or toolkit.
So yes, it's a matter of choice. When in need for really simple templating, consider showing some discipline a keep your logic out of your templates. But when you expect your application to grow, you will eventually be in need of template framework's features. And by then, you hopefully not reinventing the wheel by coding it all yourslef.
And last but not least, for me there is one killer feature available in some templating frameworks.
Template Inheritance
I've came to know it from Django and i'm now using it in the latest Smarty 3. The guys from the Symphony framework also have Twig, which you can consider a port with the Django syntax.
It's look a bit strange at first, but is extremely powerful. You build your skeleton and define various blocks. You can extend such skeleton and fill in (override) the blocks with your content.
For me that's a keeper!
<?php echo $foo ?>
to{$foo}
for a fair comparison, and then smarty clearly wins for readability. – Calder