Twitter describes the technical differences between muting and blocking well, which I would summarize like this: muting is simply not seeing someone’s tweets (or tweets with specific words, emojis, or hashtags), whereas blocking preventing all interaction with someone.
The key distinction? Blocking is more aggressive. For example, although neither the person who is muted or blocked will be informed of your action, if a blocked user tries to visit your profile they will see they have been blocked, so in theory, they could work around a block by creating another account.
So what do I do? I tend to mute fairly liberally, not so much out of anger as from disinterest or boredom. I am more likely to mute people I agree with than disagree with. For example, there are some people who I strongly agree with about a given topic—but who tweet with such anger, bordering on hatred—that I just simply don’t want to see it anymore. There’s simply no growth opportunity there for me. I want Twitter to expand my horizons, not contract it.
Blocking I tend to reserve for the worst if the worst. Certain types of tweets will get instantly blocked (and occasionally reported), but I will occasionally run across someone who has true malicious intent towards myself or others. For these folks, I will time my block to minimize the chance of further contact in the future. I will wait till whatever issue acted as a catalyst for their venom settles down, and I will block them and all of their supporters—even ones I have never engaged with.
Anyway, I try not to spend too much emotional energy or time on these folks—perhaps just 10 minutes a month. I also don’t rethink or revisit my decisions. Life is short, and Twitter isn’t that important. But I do think spending a few minutes to develop an efficient approach to muting and blocking will help make a person’s Twitter experience much more pleasant, and who doesn’t want that?