Although we generally recommend using the HaplotypeCaller for calling variants, in some cases it is not possible to do so, as explained in the FAQs. In those cases (i.e. when you're processing a high number of samples together, working with non-diploid organisms or with pooled samples) you should use the UnifiedGenotyper instead.
The Unified Genotyper calls SNPs and indels separately by considering each variant locus independently. The model it uses to do so has been generalized to work with data from organisms of any ploidy.