Our bass player has a great ear and musical sensibilities. I have learned a lot from the way he manages the set lists. He seems to focus on:
1. Rotating songs so they don't get stale. Keep adding songs. 2-3 every month or two, throw out songs that don't get a great response. That's a new set added every year, which adds up.
2. Either keeping a feel through the set (dance set or rock set) or moving through a controlled transition (rock to soft rock to R&B to rock)
3. Start with a bang, end with a bang
4. Warmup and obscure songs in first set since most people show up late. Easy uptempo songs with good hooks in late set(s) so the drunk people can have a good time. Also, we're tired at that point.
We play classic and modern rock, hard rock, pop and R&B/blues. You would have to alter these guidelines a bit for metal, or for shared shows where you only have one set. When we play only one set, we put our strongest material forward, with heavy at the beginning, the lighter songs about 2/3 of the way in and end with a couple of barn-burners. We try to make it so bands that follow us have to earn it