To my mind LDA+U is needed when you have highly-localized states (for example, rare-earth compounds with unfilled f-shell have narrow f-bands, which location is wrongly determined by usual LDA). It also happens for some materials with localized d-electrons. But for transition metal based compounds mBJ potential might give band gaps close to experiments.
Of course, you need to check this for compound of your interest.
Hybrid functionals like B3LYP are good at predicting the band gaps, i have calculated for semiconductors like polythiophenes, conducting and semiconducting carbon nanotubes, i got very good results with the experimental ones. The usual problem with LDA or GGA is they severely underestimate the band gaps of semiconductors.
So try with hybrid functionals and see how they give results.