Breiman's random forest, which the randomForest package is based on, actually does handle missing values in predictors. In the randomForest package, you can set
na.action = na.roughfix
It will start by using median/mode for missing values, but then it grows a forest and computes proximities, then iterate and construct a forest using these newly filled values etc. This is not well explained in the randomForest documentation (p10). It only states
....NAs are replaced with column medians .... This is used as a starting point for imputing missing values by random forest
On Breiman's homepage you find a little bit more information
missfill= 1,2 does a fast replacement of the missing values, for the training set (if equal to 1) and a more careful replacement (if equal to 2).
mfixrep= k with missfill=2 does a slower, but usually more effective, replacement using proximities with k iterations on the training set only. (Requires nprox >0).