Você pode definir assim:
JInternalFrame meuFrame = ...;
meuFrame.setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);
...
Esse método setDefaultCloseOperation define qual ação será tomada quando o frame for fechado. Todas as ações possíveis você pode encontrar aqui:
http://java.sun.com/javase/6/docs/api/javax/swing/WindowConstants.html
O DISPOSE_ON_CLOSE, no caso, diz que a janela deverá ser destruída quando for fechada. Se isso não estiver acontecendo, mas ela estiver sumindo, provavelmente está definido como HIDE_ON_CLOSE, que apenas esconde a janela, sem destruí-la. 
E as WindowConstants são compatíveis com todos os tipos de frames existentes, creio eu.
Opcionalmente, você pode usar o método dispose juntamente com um ouvinte:
JInternalFrame meuFrame = ...;
meuFrame.addInternalFrameListener(
new InternalFrameAdapter()
{
@Override
public void internalFrameClosed(InternalFrameEvent e)
{
// removeAll();
dispose();
}
}
);
Isso significa que, quando a janela for fechada, também deverá ser destruída.