Basically, they are very similar: they provide you with an average jail environment for you with the libraries you need in your project, without installing them in the host environment.
However, RVM provides something like gemsets, which, I think, has no equivalent in Virtualenv (the idea of grouping a set of libraries under a common name).
In addition, there is some integration with the shell that you can use with RVM (called RVMRC files) so that when you change the directory to an RVM-based project, it automatically loads the correct ruby version and library for your project.
source share