Well, disabling the entire desktop is just plain bad manners. The act of opening up another form in essence prevents the user from doing anything in previous forms of a given application until the current form is closed. There's no need for extra processing to do what you want to do.
You *could* however HIDE the first form, and then re-show it when the other form is dismissed, something like this:
private void button_Click(...)
{
Form2 form2 = new Form2();
form2.Closed += new EventArgs(form2_Closed);
this.Visible = false;
form2.ShowDialog();
}
private void form2_Closed(...)
{
this.Visible = true;
}