Hi,
This really depends on what kind of way the images will be accessed. Having enough ram to cache many images could never hurt, but if there's thousands of images that are randomly accessed then this could be a waste.
If the images are in your public/ folder (or any other folder that nginx can see) then nginx will host them directly without passenger and you get some extra performance, but passenger processes (especially Phusion Passenger 4).
Configuring PassengerMaxPoolSize depends on your machine, I would advice yuo experiment. Have it at ~your amount of cores first, and then experiment with making it higher and see what it does to your throughput/latency.