Well, that's not a loaded question or anything.
If we don't keep him, it's because his salary/cap number is too high for the role he's expected to play and/or the production we expect to get out of him.
If we do keep him at his current salary, it's because we don't have any better options at that position right now.
If we keep him at a lower salary, it's because he agreed to take less money and we'd expect to get commensurate production out of him.
There are millions of different options for keeping him, trading him, releasing him, etc., all of which fall somewhere on the scale of what we "should" or "shouldn't" do.
With few exceptions, I'd never say we "should" do something so general as keeping or not keeping a specific player under any circumstances, because it implies that there are no circumstances when we should do the opposite. Are there NO circumstances in which we shouldn't keep Roy? Of course not. If he happily agrees to take the minimum salary this season, we'd be stupid not to keep him.