1. Stop the leeches from getting gear. If you're too good to put in a fair effort, you're too good to get LFR loot.
Note this doesn't mean people who are trying, but unskilled-- it's LFR, I don't care if you're the worst player in the game so long as you're making a good faith effort to contribute. This means the people who queue and either autoattack or just stand there, neither healing nor doing damage so as to not show up as a low DPS on the meters shouldn't count as being active for the kill. (No, I'm not sure how you would tell that for sure, or tell someone who legitimately died by accident early in a fight from someone who stood in the fire so they could be dead and tab out for five minutes instead of playing the game they're paying to play to earn their loot.)
If you don't qualify for loot you're not loot locked for the week, you just don't get loot for that attempt-- it's as if you never fought that boss (so people who had a legit AFK don't get stuck without loot.) Yes, I know most LFR groups can carry one or two AFKers, but I've been in several low percent wipes that would have been kills had those one or two people even been putting in a halfhearted effort. And really, is it fair to everyone else to demand they carry you because you're better than they are, despite also needing/wanting the gear?
2. Add boss mods to the base game for LFR only (with a UI menu option to turn it off for advanced players.) Don't expect that LFR players will know the fights or know that there are addons that will explain the fight as it happens, explicitly tell them what they need to be doing with pop-up notifications, maybe even super-obvious visuals on the field. Add the pacify effect to standing in bad (in addition to the damage) so meter-watching DPS move out of it. If a player dies to something avoidable, put text in the center of their screen explaining what killed them until they release or get rezzed (and hope they read.)
3. Monitor chat for 'toxic' keywords. (Anything caught by the profanity filter, 'scrub', 'noob,' 'huntard,' etc.) If someone uses profanity or overuses any of the other toxic keywords in /instance chat, their kick timer is immediately removed and they may be vote kicked out immediately (if properly initiated.) This does not and should not monitor private channels, a handmade party's chat, guild chat, etc.
This gets rid of leeches and toxic players, and makes sure new people know how the fight works. 90% of the problems in LFR gone.