I've got fade in/out from black (from white would be easy) using a full-screen transparent rect drawn over everything. I've also done a cross-fade by drawing a full-screen image at an alpha level over a solid full-screen image. That's really all I've done. Of course when then new screen appears you can make UI elements slide into place.