In order to open a modal dialog, you need to pass a parent window, and pass the necessary flags for the dialog to be modal of course.
Depending on where you are in the eclipse infrastructure, finding this parent window is not always easy.
How can the parent window be accessed?
From a view or an editor (this part is easy):
this.getSite().getWorkbenchWindow().getShell()
From elsewhere, access a view or editor and same as above.
If you find yourself in a class where you don't have access to a view or editor, you probably don't want to be calling any UI code, but if you really want to shoot yourself in the foot:
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell()