- No Repels
- Don't run from wild Pokemon
- Don't skip trainers
- Don't skip side areas, since that usually means you're skipping trainers or wild Pokemon and even items
- When you get a new party member, catch them up to your other Pokemon's levels completely before progressing (that obviously takes grinding but it's not too bad)
That's really all there is to it for me. And not a general rule, but it helps a LOT if you don't obtain your team all in one sitting. If you plan out a team and they're all pretty spread out, say you want to use Oshawott and Petilil, which you can obtain relatively close together, but your next party member is...we'll use Gothita. That's pretty far off enough to give Oshawott and Petilil a big level advantage by the time you can get Gothita.
Slowflake is probably the best LPer to watch and see how he gets overleveled really, lol.
Yep, I like this. The only thing I would add is to set goals for yourself, if you need to. It's a lot easier to say, "I'm gunna have my whole team up to level x before I move to the next town, and then level y by the one after that", than to wait till the league and say "I'm 10 levels short of where I want my pokemon to be, so I have 60 levels total to grind now".
Generaly, In HGSS, I have my team (Usually of 3 at this point) At level 20 by the second gym, then my whole team (By this time 6) level 30+ by the fighting gym, 40ish by Ice gym, and then just let it go from there.