O RPC é uma tecnologia de comunicação entre processos.
O RMI é uma interface de programação que permite a execução de chamadas remotas no estilo RPC em aplicações desenvolvidas em Java.
Por estas duas definições tiradas da Wikipedia eu não consigo encontrar diferença. Eu até pensei que fosse na capacidade de envio de objectos entre o cliente e o servidor, mas acho que ambas as tecnologias suportam essa funcionalidade.
Então, qual é a diferença entre o RMI e o RPC?