Not including myself recently, I have friends I play with who never troll who are always nice and never get reported for anything, yet after 2 or 3 or 4 years of playing they have 0 crests which is ridiculous.
So, I think there should be some mechanism either in the forums or within the game to nominate someone (other than yourself).
A basic algorithm would go through their last 100 games of chat text to see they didn't say anything discriminatory (including loophole spellings like %%%%% or b i T ¢ h) or use negative phrases (like "go back 2 bronze nub").
If they pass that test, which, looking at how common toxicity is it should still be somewhat rare, someone at Riot (or possibly a community vote?) would personally sift through what they've said to see if it's had a positive influence on the game and give them a crest.
Most people forget that the honor system even exists. So, relying on players who you play with often is a good way to go. I think this is a good idea because it requires someone else to have the motivation to honestly speak to your integrity, it requires that you've been around in the game for a while time and have been consistently kind or helpful, it does the same thing as the current system but better and with more flexibility.