I'm just a hobbyist web developer, but I've found templates useful for my simple tasks, so I have no doubt they are useful for large-scale commerical projects.
It's normal to asbstract processing from interface as much as reasonably possible in computer programs. The concept of templates is really just an extension of this programming methodologies to the web arena. Only now it's usually called 'separation of style from content.' The idea is to keep separate things separate. The interface to e.g. a search function ought not be tied into the functional code of the search code. Likewise, the search code should not be tied into the search interface. This helps provide more logical code, easier to maintain, and easier to modify portions with less worry about breaking other parts.
Another way of looking at it is to view it as more traditional program. The algorithm is broken down into component parts, so that the primary control section calls support functions, which may call other other functions. If a piece of code is used by multiple parts of the program, it is made into a function, which is then called by the appropriate functional parts.
A program is not just one long control block with all support code inline. That is sloppy design, and makes it very difficult to maintain.
Likewise, templates, are thethe control block of the program, calling the support function, rather than placing the entire program in one large, difficult to maintain block.
I'm just thinking on the fly, but I hope that helps.