In lieu of extra data, one can use cross-validation. The idea is to split the data into two groups, one for estimating the tree, and the other for testing it out. This is done for several values of k , each time averaging the deviance over the ten test samples. One then has a graph of k versus a fair estimate of the deviance. You then choose the best k to use for your overall estimate.
Similar problems exist with partition.tree below.
The plot gives a reasonable guess for best sizes. You can then try out a few. Note that since the cross-validation subsets are random, different tries will produce different graphs. The trees do not seem to be as useful as the linear discrimination procedures in this example, but part of the problem is that linear combinations are not allowed. In CART they are, so it is more a matter of implementation than principle.