-Although you CAN get away with just about anything in-game if your Pokemon are of a high enough level, that's no excuse to make a lousy team.
-As a general rule of thumb, evolve your Pokemon as soon as possible. Exceptions to this include:Stone evo Pokemon other than Eevee(typically don't get (m)any level-up moves after the evo, so only evolve said Pokes once you get all the level-up moves that you want from them), situations where a pre-evo gets a level-up move that an evo doesn't(ex. Trapinch and Nincada get Dig while their evos don't. And yes, Dig IS a TM move as well, but you generally shouldn't use TMs unless you *have* to), and situations where you really, *really*, want to get a certain level-up move early.
-Cover your Pokemon's weaknesses so that you don't have to rely on your other Pokemon to deal with them all the time(yes, it's preferable to have your Sandslash deal with an Electric type rather than your Feraligatr, but if Feraligatr's all you have left it's awfully nice to have Earthquake to make things so easier). A common example of this is having a Water type with Ice Beam to deal with Grass(along with Flying and Dragon) types.
-Never have two directly damaging moves of the same type on a Pokemon.
-As a *general* rule of thumb, Surf>Hydro Pump, Flamethrower>Fire Blast, Thunderbolt>Thunder, and Ice Beam>Blizzard. There are a few Pokemon with attack stats so poor that they need the extra power more than they need accuracy.
-Stat boosting moves are your friends. Use them. Moves that lower your opponent's stats are also useful, but not quite as much since they go away once your foe's Pokemon leaves battle due to switching or fainting.
-Try to stay away from moves that require a (re)charging turn, such as Hyper Beam(and its elemental clones), Solar Beam(unless you also have Sunny Day), and Sky Attack. Dive, Dig, and Fly, although also having a turn where you're not damaging anything, are slightly better since you have some degree of protection from attacks in that time(doesn't stop people from Protecting the turn after, though).
-For in-game teams, try to have a Pokemon with Surf and a Pokemon with Fly with you at all times. Surf is a great Water move in general, and you'll often have to cross bodies of water anyway. Fly is mediocre in battle(at best), but that's made up for by the fact that you can instantly go to any city you've been in before(as long as you're outside while doing it, of course). Beats having to walk everywhere(especially when going from one end of Houen to the other).
-Have a variety of types on your team, unless you're specifically going for a mono-type team or some other sort of theme team.
-As a general rule of thumb, you should have a STAB move on each of your Pokemon.(ie. give the Pokemon a move that's the same type as it) That 1.5 multiplier to attack damage is quite nice. And death to the rumor that the bonus is halved on duel-type Pokemon, and to the rumor that Normal types don't get STAB.
-You generally want at least two attacking moves of different types on each Pokemon. That way, all your Pokemon are capable of dealing damage directly(things like Toxic and Confuse Ray are nice, but Toxic doesn't work on everything and Confuse Ray A)Wears off and B)Doesn't always make the opponent hurt itself) and having two moves of different types means that you'll be able to deal damage to almost anything.
-Bear in mind that I'm not a stellar battler myself, and that most of what I've said here will work in-game, and won't be HORRIBLE in competitive play. If you want to be the best at things like Netbattle, go do some serious reading in things like the RMT forums and Smogon, because the movesets and guides are are written by people far more experianced in competitive play than I am.