UnifiedGenotyper calls SNPs and indels on a per-locus basis. HaplotypeCaller discards the alignment information around a position where it suspects a variant and is doing local re-assembly with those reads. This has a high impact on calling indels and in repetitive regions.
UnifiedGenotyper isn't recommendet anymore. If you have to/like to choose between these both use HaplotypeCaller.