Well, a move set should depend on the type of Pokemon you're looking at.
First, look at the stats of your Pokemon. If you're Pokemon has a lot of Atk/SpAtk, you probably want to give this Pokemon some attacking moves. STAB moves are always the best type of attacking moves since it increases the move's power when it's the same type as the Pokemon. If you're Pokemon is dual-typed, you should consider having a STAB move for each type.
If you're Pokemon has a lot of defenses, and very little Atk/SpAtk, consider having at least one attacking move for 1v1 situations, but you want to look more at status moves to help your team. For example, in a single 1v1 battle, some moves you may consider are status condition moves such as Thunder Wave or Will-O-Wisp, and possibly some weather conditional moves such as Rain Dance. You don't want to end up with a Pokemon with no attack moves, so possibly have a STAB move in it's move set as well
The rest of your moves should depends on its other stats.
If you have a high attacking-type Pokemon, with very little defenses, the rest of the moves should also be attacking moves; otherwise save at least one slot for a move like Protect. With a sweeping Pokemon, you may want to get other moves that take care of it's weaknesses. For example, if you have an Infernape on your team, you may have moves like Fire Punch and Close Combat. But, when you look at it's weaknesses, you may also consider having a move like Thunder Punch to take care of its flying weakness (although you may not have enough slots to take care of every weakness). The move protect can be using to save yourself from a super-effective attack, and make the opposing Pokemon use up PP.
If you have a Pokemon with a good attacking stat and some good defenses, you may want to fill the rest of the slots with status moves. For example, if you have a Pokemon like Dusknoir, you may choose to have a move like Calm Mind to help it's stats, or Trick Room to make it faster on the field since it's very slow. Although, any status move may work.
With a Pokemon with good defenses but little attack, you maybe should make the rest of its slots status moves, particularly for 2v2. With 2v2, you may still have at least one attacking move, but it's better to help your team with moves like Reflect, Safeguard, or Light Screen.
Although all Pokemon are essentially different, this is the standard base line. You should also look at the abilities of your Pokemon to see what benefits it. Some Pokemon also have their own style of healing other Pokemon with moves like Aromatherapy, Wish, or Heal Pulse. Also, slow defensive Pokemon may use a move like Trick Room to make them the fastest, and possibly have moves like Toxic Spikes or Stealth Rock to damage the opposing Pokemon upon entry. Most Pokemon for battling have the move protect so that's a good go-to move if you don't know what to decide.
Hope I helped! :)