Haploview can select an optimized set of tag SNPs using a variant of the Tagger algorithm. The configuration page looks like:
Here we can specify which alleles in this dataset we want to tag, which if any we want to force in or out of the tagset and set parameters for the aggressiveness of the tagging algorithm. The results for our dataset look something like this:
The left part of the screen shows the tests (either single SNPs or haplotype alleles) we've chosen and which SNPs are tagged by the highlighted selection. The right part of the screen shows all the alleles and which test best tags them. As always, more info is in the documentation.