they both mean "again", but have you ever wondered what the actual difference is? It turns out, "again" can mean so many things, and German is super specific about things... again.
Let's look at noch mal first and two of its meanings.
1. "Again" as as in "another time", "next time", or "once more"
Wann sehen wir uns noch mal?
When will we see each other again?
Noch mal, bitte!
Once more, please.
Once again, sorry.
2. "Again" as in "I knew it but I forgot it"
Wo wohnst du noch mal?
Where do you live again?
Entschuldigung, wie heißt du noch mal?
I'm sorry, what's your name again?
The focus here is on something happening one more time. Noch mal is actually the short version of noch einmal, which literally means "even one more time".
And then there is wieder, which also means "again" but in a subtly different way.
1. "Again" as in "repeated times"
Huch, ich habe es nochmal wieder getan.
Oops, I did it again.
The focus here is not on the one more time, but the implication of several times of repetition.
2. "Again" as in "returning to a previous position or condition". In this case "wieder" is used like a prefix of a separable verb.
Wann kommst du wieder?
wiederkommen → come back
Wann sehen wir uns wieder?
wiedersehen → see again
Hast du deinen Schlüssel wiedergefunden?
wiederfinden → find again (after losing it)
These are very common expressions with wieder
immer wieder = over and over
immer und immer wieder = over and over again
Noch mal, nochmal, nochmals
There are a couple of alternative spellings. According to the new German spelling, it is allowed to write "nochmal" together, but it is recommended to write it separately as "noch mal".
Noch mal: (colloquial), short for "noch einmal"
Nochmals: formal, used less frequently