The best way to do this IMHO is Gestalt. Make each character be a specific class on one side and whatever they want on the other. That way, the party is themed, likely has all the neccesary party roles and each player gets to have a unique character.

That said, there's no reason a group of, to use one of your examples, dwarf "rangers" shouldn't include a field medic (cleric) and maybe a (gnome even?) wizard, and the actual "rangers" could be either standard rangers or fighters, barbarians, rogues or something similar.