I have two very different strategies depending on the point in the game I am at. Up until the elite four (the first time), I catch and train and improve my party, never letting one fall behind in terms of levels, constantly replacing Pokemon when I find new ones I like. My team going into the Elite Four is always extremely well balanced and only invariably contains a few set pieces: someone with Fly, my starter, and someone with Surf.
Once the Elite Four are beaten, however, things change. Ever since I learned how EVs and IVs work, I can't NOT take them into account. With the help of a calculator and spreadsheets, I carefully select six Pokemon that I both really like and are battle-viable and breed the shit out of them until I get ones I like. For the rest of the game, these (though there are often more than six) will be my party.
One of the main reasons I do this is that my brother and I spend a lot of time in the Battle Tower (or equivalent) and once you get to the upper numbers of battles, properly bred Pokemon go a very long way.
There is, of course, no correct way to play Pokemon, but this is mine.
EDIT: Almost forgot. My #1 rule = Catch Them All. If I see it in the wild, I do not leave the area until I've caught one. No exceptions.