When I saw the title of this article, I immediately envisioned replacing:
...WHERE Name LIKE '%son'
with:
WHERE LEFT(REVERSE(Name),3)='nos'
Because to answer the introductory question, "How often do I need to do a search like...?": Not nearly often enough to justify creating a new indexed column solely for that purpose. A pure-SQL solution would be interesting though.