On a single server, there's not much point caching the same data in both places. That will use twice the RAM for no real advantage. In this case, it's probably easiest to use APC, because it's one less process to run, and one less interface to learn.
Memcache becomes more useful when you have a whole cluster of servers. Memcache can be queried by multiple servers (and also by multiple processes on the same server). In contrast, data in the APC cache can only be used by PHP on its own server. This makes Memcache more efficient, because you can cache data once and use it on the whole cluster. Memcache itself also can be clustered, so that you can pool the RAM from a bunch of different machines, and use them all as one big cache.
My company uses both Memcache and APC simultaneously. We have a dozen servers running Memcache; these servers cache complex data structures so that we don't have to make database queries all the time. We also use APC to store a little bit of info that's used all the time, like configuration settings. Without APC, we were inundating our Memcache servers with tons of requests for simple data like "Is the app in read-only mode?" Our Memcache servers could handle it, but it's obviously more efficient to keep that information around in local memory.