As someone who dreams a lot, you need a certain self-control in order to remember and do whatever you want in them.
Some years ago someone posted the best way to lucid dream on /x/, and it's worked amazingly well for me.
When you go on your bed to sleep, keep yourself aware and awake as much as you can, note that you should feel the need of sleeping between that time. Once you start drifting, and get inside your dreams, start spinning on yourself to keep your brain busy from waking you up. After that, you have full authority on your dream, you can go anywhere, use any powers you feel like, and do whatever you want.
When the dream feels real, that's your brain working on everything to make you feel like it's real. There's many factor that will tell you that this is just a dream, like voices aren't right, things aren't the way they should be, you're in another place, weird shit happening, ect. In the end, whether they are 100% real to you or not, you can conclude you are dreaming and having a nice experience
some people claim they can see in the future with their dreams, or go to places they never been to, but that ultimately falls into /x/ tier category. I personally had this happen to me on several occasions, but there's no real scientific way to explain it apart from some sort of loophole in the universe
Ultimately, dreaming allow you to experiment things you wouldn't in real life. You can fly, you can create alternate realities, you can do anything you want. The best way to develop your ability to dream is to keep a dream journal and follow guides in order to have a successful dreaming session
If you can't dream, have nightmares or can't sleep, try changing something in your daily routine that can fuck with the way you sleep