First you need to define your measure of "good." It is always an absolute must to have some sort of a baseline model in place. Your classification tree may predict on a held out set with 0.9 accuracy, but this is less than impressive if a majority baseline model (classify everything as the majority class from the training data) also does this well.
Once you have defined this and performed your parameter tuning (I am guessing in your case it is mostly likely things like splitting criteria, tree complexity, etc.) via cross validation on 90% of the data you have available to you, apply the model to your remaining 10% of the data. If your model performs better on this data than your baseline, you can justify that your tree is doing well.
As for the second part of your question, I'm not really sure what you are looking for in terms of comparing the data to the model, but you might consider examining the class distribution across the nodes. Since you are using rpart package, you can use the rattle package to generate some decent looking visualizations like this: