What I like to do - Make characters with good strengths and exploitable weaknesses.
Give the bosses everything that focuses on the weaknesses of the characters. In the party there is always someone that covers the weaknesses of the character thats being exploited however have a weakness that can be countered by the party members strength.
Er.. This only makes sense to me.
Simple version - Rock paper scissors.
Party Member 1 - Only can use scissors
Party Member 2 - Only Rock
Boss - Can use rock paper and scissors.
Party member 1 defends 2 when the boss uses rock, 2 covers 1 when scissors is used, and when the boss is caught off guard both characters go in for an all out attack.
However, the boss can use a wild card which uses all 3 types at once and the party have to cover each others weaknesses.
This way strategy has to be used to defeat a boss that isn't able to be defeated alone.