I normally set my alarm to go off about 15 minutes before I get up. This gives me enough time to sit in bed and think about my dreams. I seem to have mastered the art of slapping the snooze without fully exiting the dream though. So, usually I can keep at least one shred of the dream. This is all I need if I want to recall the dream.

You can think of dreams as a chain. Each piece connects to another piece. If you can grab and remember but one piece, you can normally work your way down the chain. To try and remember what happened in a dream from a single part, I ask myself things like: What would you have done then? How did you get here? Why are you doing this? The answer to any of those questions will lead you to another part of the dream. Once you're on a roll, soon the whole dream will come back into perspective. If you stumble upon a DC, its easy to remember what they did, when you met them.. etc. When you remember a place in the dream it will spark off the memories of events.

Normally, I try and tunnel through memories as far to the start of the dream as I can easily manage then go over the main events and emotions.

If I have a blank mind, I either try to go right back to sleep (just wait in a sleep-like state until I get something I recognize then re-enter so I can get at least a piece of the dream) or I think about what happened yesterday and earlier in the week. If you're lucky enough to stumble upon an object/event/feeling thats common between the two (and there tends to be many) then you can try and work from there.