As a NON-NATIVE speaker, my impression of the difference is:
The first is from Sanskrit origin, the second from Persian. This means both can have an identical "direct" meaning, while indirectly they MAY have different connotations in context and different implications for the identity of the speaker. In certain types of poetry, for example, you'd choose one over the other. सुंदर sounds to me more chaste; ख़ुबसुरात is more decadent. There is more romance in the latter. I would tell my girlfriend she is ख़ुबसुरात (i.e. praising her beauty), because I think सुंदर would have the effect more like saying she is "attractive" or even "handsome." Somewhat similarly, I feel ख़ुबसुरात is less appropriate (though NOT totally wrong) for praising male beauty, in the same way in English we might prefer to call a man "handsome" rather than "beautiful."
सुंदर has a wider range of applications as "beautiful", whereas ख़ुबसुरात is more specific to physical appearance.
Summary: They're basically the same! Your mileage may vary.
In response to: "सुंदर has a wider range of applications as "beautiful", whereas ख़ुबसुरात is more specific to physical appearance."
A native speaker corrected me when I was saying something about "मेरे सुन्दर दोस्तों". She said that सुन्दर is more about physical appearance and I should use "प्यारे" instead.