xcache is a memory cache like memcached that you usually store variables and other data in. It’s basically like extra RAM storage for PHP.
Varnish is a programme that sits in front of Apache. Visitors hit Varnish, if it has a copy of the page/item requested in cache then it’ll serve it, otherwise it asks Apache for it.
They’re used for completely different reasons!