I think a lot about this topic, because our company is in the service business. I talk to others about it. I contemplate how we provide service, and I pay attention to the service that others provide me.
After all this consideration, I come back to a basic principle and a corollary, both of which fit nicely in one sentence:
Great service comes from doing what your client wants, not from doing what you want to do.
Another way to say both parts, by the way, is that great service comes from putting your client ahead of yourself.
Any way you phrase it, neither part is easy.
I'm going to ignore here those situations in which what the client wants is something you're not willing, for whatever reason, to do. In such cases, you have two reasonable choices: attempt to change the client's mind, or bow out.
Doing what your client wants can be difficult for multiple reasons. The client might not know what he/she wants or might have only a basic understanding of that desire. Doing what the client wants might cost more than the client is willing to pay. And so on.
Doing what your client wants might also mean not getting what you want from the encounter. If your client really wants a dress and you don't have any, you'll probably have to send the client elsewhere.
Which gets to the second part, not doing what you want to do. If you want to sell shoes and she wants dresses, you lose. That happens. Get over it. If your client wants his steak well done and you consider anything darker than medium rare to be an abomination, either kick out the guy or char that beef.
All of this sounds so easy it shouldn't be necessary to discuss, but it's not. Watch the next time you're serving someone, or someone is serving you, and odds are that the server will violate this principle sometime during the transaction. As best I can tell, at core most people don't want to put others first most of the time, so their service suffers. That's understandable, but it will always limit how good they are at what they're doing.