One of them (host.conf) is there for the resolver routines in your C library (used for DNS). This one is much simpler. The other (nsswitch.conf) is for the NameServiceSwitch routines in your C library. This is much more than just DNS. In fact, NSS is designed to be extensible for adding new services when they are needed/invented.
Most simpler programs will prefer to use -lresolv, and thereby use the leaner, more portable host.conf (indirectly). Some other programs use NSS since they require information other than or in addition to DNS.
man 3 resolver
man 5 resolv.conf
man 5 host.conf
man 5 nsswitch.conf