1. Stained, beyond repair? - goes into the utility room.
2. Frayed - if it is still fine otherwise - I'll attempt a rescue.
3. Wore out - trash it, car towel, take the cat to the vet towel.
How long I've had them doesn't matter, it is the condition that counts.
I do love fine linens, so I usually buy mine at TJMaxx or Home Goods. They tend to have good quality at a discount.
Admittedly, I have more than enough kitchen towels and ratty is not allowed in my kitchen. In fact, I have seasonal dish towels.
Bath towels - well, we have only one bathroom, so no guest towel fanciness, but rather nice, good quality towels for us. I tend to buy a new set every two-three years, but I rotate all five or six of my towel sets so they will last longer.
For me, the choice is to have something nice or nothing at all.
Rugs are luxuries - so my motto is, get something nice or let it be.