In my experience with both Passenger/nginx and Unicorn/nginx, Unicorn is much more under control with the number of processes it spawns. Passenger may have fixed this by now, but when I was testing, Passenger would forget about processes and spin up new ones. Eventually, you'd run out of memory and Bad Things would ensue.
Unicorn has never done that to me. For production use, that makes the decision really easy
With a few rails apps under low load, Passenger3/REE/MRI1.9 works ok here. If load increases I'll probably look into possible alternatives and aggressive caching.
I don't have much empirical evidence one way or the other, but we went with it basically to reduce the number of moving parts. Although it could be argued that Passenger is only one moving part anyway, with its ability to install Nginx for you...
Unicorn has never done that to me. For production use, that makes the decision really easy