Are there any effective cures for nightmares?

Yes. Nightmares usually are manifestations of other problems that needs exploration. They also can be the result of medication side effects, some sleep aides lead to increased dream activity. Prazocin is used to suppress dreams and nightmares, we use it in cases of anxiety and ptsd.
Nightmares. Medication called prazosin or Minipress has been used off label for treatment of nightmares associated with ptsd. You should talk to your doctor.