I'm prone to bad nights as well. My body (darn thing) is uber-sensitive to just about every factor under the sun, and it's taken me a lot of years to figure out ways to get a decent night's sleep.
So.
1. No caffeine after lunchtime. If you have to have a coffee or soda, do it in the morning.
2. Try not to eat anything for at least 3-4 hours before bed. If you're so hungry you feel like you're gonna die, have a glass of milk.
3. Don't exercise within 2-3 hours of going to bed. Exercise is a stimulant, it also increases your body temperature, and that affect can last for several hours; sleeping is more difficult if you're too warm. DO exercise though, because exercise will help relieve stress, do all kinds of good things for your brain, and make it easier to sleep (just leave enough time between the exercise and bedtime).
4. Avoid too much stimulation for at least an hour before bed. This could include TV, music, movies, etc, that contain a lot of drama, violence, noise. Try reading a book, listening to quiet music, keeping the lights low. One thing that works better than any drug for me, is nature sounds. One of those tracks with the sound of rain, and some birds in the background, and I'm fighting to keep my eyes open.
5. Try sleeping with/without white noise (fans, etc). I can't sleep in absolute silence, I HAVE to have a fan on. Other people can't sleep with ANY noise at all. See what works for you.
6. Keep your bedroom cool at night. Being too warm will interrupt sleep AND is proven to cause nightmares. Experiment until you find what works for you. I sleep with nothing but a sheet for most of the year, cause I'm naturally warm when I sleep. Even one light blanket will make me wake up sweating and shivering and having bad dreams. And I keep my thermostat down to about 65-68 degrees at night, all year long.
7. Do you have allergies? If so, elevate your head with an extra pillow or two. I can't sleep flat, my head will stuff up like a corked bottle and I won't be able to breathe.
Hope some of this helps, Steph!!