The victory condition of a game isn't as important as it might seem. People just want to enjoy the game.
Some games have a logical end, that ties strongly into the theme.
My gangster game ends when you've eliminated all the other players.
For many games, particularly less-adversarial games, there is no organic end. The game has to end at some point, and the question of who wins should simply be "who did the best stuff?"
In this case, add a points system to the game, that rewards the player for generally doing good stuff. The winner is the player who has the most points at the end.
As with everything, keep it simple. Don't chase mathematical accuracy, at the cost of complexity.
In Century: Spice Road, all spice cubes are worth one point, except for the worst type, which are worth zero. This is a good compromise.
In general, players should not be eliminated from a game. It's not fun having to wait for the game to finish. Especially, don't have players eliminated early in the game.
Elimination can, however, raise the stakes, and create amazing tension. Elimination is appropriate for a small minority of games. Cliffhanger moments can be some of the best moments in gaming. Imagine TV show Survivor, without elimination.
The key to cliffhangers is that the player probably survives each cliffhanger. No more chance, no less.
My gangster game goes for about 20 minutes, but players are injured at fairly similar speeds. If anyone is eliminated, it's likely very late in the game, and there's a good chance many players are eliminated at once, possibly ending the game. The eliminations rely on the luck of the dice, which provides endless cliffhanger moments. When players are eliminated, they typically stay engaged with the game, wanting to see who wins, as the survivors battle it out, on the verge of death.
Sometimes, the game is a tie. What happens, then?
I'm okay with a game being a draw. Players find it amusing, and neither player is the loser.
I don't like tying, and then reaching for the rulebook, to see "who really won". Equal performance equals a tie, in my books.
Gameplay aside, I don't think tiebreakers are worth the extra complexity, but many designers insist on having them.
The worst tiebreakers are the random ones.
In Splendor, the player with the most points wins. If players have equal points, the player with the least cards wins. This is simply flipping a coin. There is almost no time at which you should try to get less cards. It only matters in the case of a tie. No one has been focussing on it, and it's essentially random.
Other poor tiebreakers include turn-based tiebreakers. Whoever has had the most turns loses the game. This attempts to fuse two problems together — balancing the starting player advantage, and creating a tiebreaker. However, this leaves a permanent warping on the game, such that the game is slightly different for both players, all the way through. Also, I have to go and check who was first.
Your tiebreaker, if you want one, should be the person who wins by more, or would be in the lead, if the game kept going slightly longer. To find this player, follow the victory chain backwards. If the player with the most houses wins, and houses are bought with gold, then the player with the most gold should win the tie.
Don't create a second tiebreaker, if the first one is still tied. The complexity is not justified. The game can just be a tie 0.1% of the time.