I put off buying a fabric sofa for years because the one I grew up with was a beige thing that smelled faintly of dog no matter how many times it got cleaned, and I figured leather or nothing. What changed my mind was sitting on a friend's couch for an entire football season and realizing it felt better than anything leather I owned, warmer in winter, and nobody's bare legs were sticking to it in July.
The difference between a fabric sofa that holds up and one that sags into disappointment by year two comes down to what's underneath the part you can see. Flip the cushions off and check the frame first, it should be hardwood, not particleboard pretending to be structural, and the joints should be screwed and glued, maybe doweled, not just stapled at the corners. Press down on the seat deck. If it's webbing, it should feel taut, not trampoline loose. The foam matters more than people expect, too thin and you'll feel the frame through it in a year, too soft and you'll sink and stay sunk. And the fabric itself tells on the whole piece: a tight, even weave with no loose threads at the seams means someone cared about the stitching, while a cover that puckers or shows the frame lines through it was rushed off a line somewhere.
If you're starting from nothing, go simple before you go bold. A plain weave in a mid gray or warm oatmeal will outlast every trend you're tempted by, and it hides the ordinary wear of actual living better than anything with a pattern that'll date in three years. Skip performance fabrics that feel plasticky to the hand just because they promise to survive red wine, a tighter natural weave resists more than you'd think and feels like something you actually want to sit on. Get one with removable, washable covers if you can, because eventually something will get spilled, it always does.
In a regular room, a fabric sofa sits easily with wood furniture that has some age or character to it, a worn coffee table, a rug with some texture underneath. It softens a room full of hard surfaces, a bookshelf, a TV stand, bare floors, in a way leather and hard wood frames can't. Put a knit throw over the arm and it looks lived in immediately, which is the whole point.
What I like best is how it changes with you in it. The cushions relax into the shape of whoever sits there most, the fabric gets a slight softness to the touch that it didn't have on day one, and a well built frame just keeps doing its job quietly underneath all of it, for longer than you expect.