My den sofa is a very good quality, classic design. I had it reupholstered this year because the fabric was showing some signs of wear and tear due to some children who shall remain nameless spilling certain forbidden items on it and trying to hide the evidence...
The fabric had been discontiuned, but I was able to buy the remaining bolt at about $10 per yard. It's a heavy cotton fabric, not a heavier upholstery weight. It takes 16 yards to cover this sofa, and there were about 30 on the bolt. So I have enough fabric to cover it one more time in several years when it needs it again.
I have a great local upholsterer who charges $388.50 to do a sofa, including cushions and matching the fabric all around (this is a floral that needed to be matched on the cushions, etc.) I thought it was well worth it to have essentially a brand new sofa for the next 5-7 years.