Well, the technique I use that's the most successful is this:

Before going to bed, tell yourself you will remember your dream, down to the last detail. Your brain now knows that you want to remember your dreams. Usually, your brain trashes out dreams, but keeping a DJ and telling yourself you will remember them is very useful, and helps for me. It sets your mind's priorities straight, and keeps it from throwing out useful information.