Understanding Stolen and foreign memory usage between 2 app database servers
Stolen memory refers to memory that is being used for something other than buffer, that could be used for buffer if it weren't being used for something else.  See why SQL Server 2012 still needs the "Stolen Server Memory (KB).  To minimize the amount of stolen memory, one would need to optimize queries so that they use as little memory as possible.  For example, if there is an unnecessary sort, that may use some of this memory.  If it's a reporting server, my guess is you're just going to have to account for some amount of stolen memory.

Foreign memory refers to worker memory that is on a remote NUMA node.  See How It Works: SQL Server (NUMA Local, Foreign and Away Memory Blocks).  When memory is foreign it takes a bit longer to access it, and the impact depends on your system and the speed of the components.  To minimize, you would want to make sure you have the NUMA configuration and Max Degree of Parallelism set correctly.