Ritenuto in fatto :
A.- La sera del 20 agosto 1971 A._, cittadino germanico residente ad Ascona, fu ucciso a Gordemo, frazione del Comune di Gordola. Il cadavere fu ritrovato, racchiuso in un sacco, il 19 settembre 1971 sul Monte Brè sopra Locarno. Con sentenza del 4 dicembre 1973 la Corte delle Assise criminali di Locarno stabilì che Wilhelm Geuer e Gisela Kemperdick furono i mandanti del crimine, B._ l'esecutore materiale e C._ l'intermediario.
Della causa furono in seguito investite a diverse riprese la Corte di cassazione e di revisione penale (CCRP), la quale si pronunciò con sentenze del 9 luglio 1974, 22 luglio 1976 (recte: 1977) e 18 aprile 1978, nonché il Tribunale federale, la cui Corte di cassazione penale emise due sentenze il 30 gennaio 1976 (ricorsi di diritto pubblico e per cassazione), una il 17 novembre 1977 (ricorso per cassazione) e una il 27 ottobre 1978 (ricorso per cassazione). Esauriti tutti i rimedi, ne risultarono le condanne seguenti:
- reclusione perpetua per Wilhelm Geuer e Gisela Kemperdick, riconosciuti colpevoli di correità in assassinio e mancata istigazione all'assassinio; il primo anche di appropriazione indebita; entrambi furono espulsi dalla Svizzera per 15 anni;
- 18 anni di reclusione per B._, riconosciuto colpevole di assassinio;
- 18 anni di reclusione per C._, riconosciuto colpevole di correità in assassinio, mancata istigazione all'assassinio, appropriazione indebita, correità in furto e furto.
Il 22 luglio 1980 Wilhelm Geuer e Gisela Kemperdick presentarono un'istanza di revisione che la CCRP respinse con sentenza del 27 luglio 1982. I ricorsi di diritto pubblico e per cassazione proposti contro di essa furono respinti dal Tribunale federale, rispettivamente, l'11 e il 19 maggio 1983.
B.- Il 26 giugno 1997 Wilhelm Geuer e Gisela Geuer-Kemperdick (nel frattempo sposatisi) presentavano una nuova istanza di revisione della sentenza del 4 dicembre 1973 della Corte delle Assise criminali di Locarno e della sentenza del 9 luglio 1974 della CCRP poiché nuove dichiarazioni rilasciate da C._ proverebbero che essi non furono i mandanti dell'assassinio. La Corte di cassazione e revisione penale respingeva l'istanza con sentenza dell'8 luglio 1999.
C.- Wilhelm e Gisela Geuer-Kemperdick sono insorti con tempestivo ricorso per cassazione dinanzi al Tribunale federale e chiedono, in via principale, l'annullamento della sentenza dell'8 luglio 1999 nonché l'accoglimento della loro istanza di revisione, e, in via subordinata, il rinvio degli atti all'autorità cantonale per nuovo giudizio.
D.- Invitato a presentare le sue osservazioni sul gravame, il Ministero pubblico ne ha postulato l'inammissibilità e, in via subordinata, la reiezione.
Con sentenza di data odierna, la Corte di cassazione penale del Tribunale federale ha respinto, nella misura in cui era ammissibile, il ricorso di diritto pubblico proposto parallelamente dai ricorrenti.

Considerando in diritto :
1.- Data la natura puramente cassatoria del ricorso per cassazione, il gravame in oggetto è ammissibile solo nella misura in cui tende all'annullamento della sentenza impugnata (art. 277ter cpv. 1 PP; <ref-ruling> consid. 1). Inammissibile è anche il richiamo alle censure esposte unicamente nel ricorso di diritto pubblico, perché, in conformità agli art. 272 cpv. 2 e 273 PP, tutte le censure vanno indicate nella motivazione dell'atto di ricorso per cassazione (<ref-ruling> consid. 1). Infine sono inammissibili le censure volte contro gli accertamenti di fatto, essendo il Tribunale federale vincolato al riguardo dalle constatazioni dell'autorità cantonale (art. 273 cpv. 1 lett. b e 277bis cpv. 1 PP).
2.-a) A mente dei ricorrenti, nel rifiutare di considerare la ritrattazione di C._ come un fatto nuovo e rilevante, la CCRP avrebbe violato l'<ref-law>. Avendo quest'ultimo dichiarato che fu un'altra persona a ideare, organizzare e commettere l'assassinio, tutti gli elementi a carico considerati a suo tempo ne risulterebbero smentiti. Alla luce della nuova versione dei fatti, il giudizio di merito sarebbe stato certamente diverso. A sostegno della loro tesi, i ricorrenti aggiungono che tale giudizio fu per loro sfavorevole sia perché il Cantone Ticino non conosce la procedura d'appello, sia perché, a quel tempo, vigeva il Codice di procedura penale del 10 luglio 1941 (vCPP, oggi abrogato), che limitava gravemente i diritti della difesa.
b) L'<ref-law> stabilisce che i cantoni devono prevedere la revisione del processo a favore del condannato quando esistono fatti o mezzi di prova rilevanti, che non erano noti al tribunale all'occasione del primo processo.
Anche se, come osserva il Ministero pubblico, il motivo di revisione imposto dall'<ref-law> è stato ripreso dal diritto cantonale, le nozioni di fatto o di mezzo di prova nuovi e rilevanti rimangono definite esclusivamente dal diritto federale. Pure la valutazione della pertinenza giuridica della modifica dello stato di fatto è una questione di diritto federale. L'accertamento della novità e della rilevanza di un fatto o di un mezzo di prova è invece una questione di fatto che dipende dall'apprezzamento delle prove (<ref-ruling> consid. 2a, 116 IV 353 consid. 2b). Le censure ricorsuali che hanno per oggetto tali accertamenti - ossia la novità e la rilevanza della ritrattazione di C._ - sono di conseguenza inammissibili in sede di ricorso per cassazione (<ref-ruling> consid. 2b). Lo stesso vale per gli argomenti fondati sul diritto procedurale cantonale (art. 269 cpv. 1 PP); tanto più che siffatti argomenti sono rivolti addirittura contro il processo di prima istanza, sfociato nella condanna del 4 dicembre 1973.
3.- I ricorrenti affermano che l'<ref-law> è stato violato anche perché l'autorità cantonale, invece di limitarsi ad autorizzare la revisione, si è sostituita al giudice di merito e ha valutato gli indizi nonché confermato un giudizio di colpevolezza in base a elementi da ritenersi ancora validi nonostante le smentite di C._. Benché formulata in modo assai stringato, questa censura riguarda in sostanza il carattere rilevante di un fatto o di un mezzo di prova nuovo. Si tratta di una problematica retta dal diritto federale e proponibile, di conseguenza, con ricorso per cassazione.
a) In una sentenza del 28 settembre 1990, pubblicata in <ref-ruling>, il Tribunale federale spiega che il processo di revisione si suddivide in due momenti: con il giudizio autorizzativo ("iudicium rescindens") va preliminarmente deciso se debba essere accordata la revisione sulla base di fatti o prove nuovi e rilevanti, suscettibili di condurre a una sentenza più favorevole; nel giudizio di merito ("iudicium rescissorium") va in seguito stabilito se la prima sentenza debba effettivamente essere modificata (<ref-ruling> consid. 4b). Nel Cantone Ticino questo sdoppiamento della procedura di revisione era codificato all'art. 246 cpv. 1 vCPP, il quale prevedeva che, in caso di accoglimento della domanda, la causa era rinviata alle assise competenti secondo l'atto di accusa; l'art. 248 vCPP precisava che il processo di merito poteva svolgersi senza rinvio soltanto in caso di decesso del condannato a favore del quale era stata domandata la revisione.
I ricorrenti sostengono pertanto a ragione la necessità di distinguere, in forza dell'<ref-law>, tra decisione autorizzativa e giudizio di merito. L'autorità cantonale non ha tuttavia disatteso questo principio.
b) Il fatto o il mezzo di prova nuovi sono rilevanti ai sensi dell'<ref-law> se idonei a far vacillare gli accertamenti di fatto sui quali si è fondata la condanna e se lo stato di fatto così modificato rende possibile un giudizio sensibilmente più favorevole (<ref-ruling> consid. 2a e rinvii). Nella sentenza di cui sopra, il Tribunale federale ha soggiunto che, per decidere sulla rilevanza, vanno esaminati due aspetti: il primo concerne le condizioni alle quali può ritenersi che il fatto nuovo sia provato o che il nuovo mezzo di prova esista; il secondo riguarda la valutazione del grado di possibilità di una modifica della sfera dei fatti necessario affinché la revisione possa essere ammessa (<ref-ruling> consid. 4c). A proposito del primo aspetto, il Tribunale federale ha osservato - modificando in parte e precisando la giurisprudenza precedente (<ref-ruling> consid. 2) - che il diritto federale non impone al giudice della revisione di emanare una decisione definitiva sulla questione della prova: sia in considerazione delle due fasi testé citate del processo di revisione, sia perché esigere una prova del fatto nuovo tale da escludere ogni dubbio fondato ostacolerebbe l'eventuale dimostrazione che una modifica della sentenza di condanna sia possibile (<ref-ruling> consid. 4d/e). Quanto al secondo aspetto, il Tribunale federale lo ha precisato tenendo conto dell'inevitabile conflitto d'interessi, insito in ogni giudizio autorizzativo, tra giustizia sostanziale e sicurezza del diritto. La portata di quest'ultimo elemento sarebbe sminuita in modo eccessivo se la revisione a favore del condannato fosse accordata già qualora una sentenza più favorevole non apparisse impossibile o non fosse da escludere. L'aggettivo "possibile" va pertanto interpretato in modo qualificato, ossia la prospettata modifica dello stato di fatto sul quale si fonda la sentenza di condanna deve apparire certa, estremamente probabile o probabile (<ref-ruling> consid. 5a).
c) Nella sentenza impugnata la rilevanza della ritrattazione di C._ è stata negata con due ordini di argomenti. In primo luogo è stato accertato che la nuova versione dei fatti posta a fondamento della domanda di revisione non è attendibile; in secondo luogo è stata scartata l'ipotesi di un giudizio diverso dato che la ritrattazione non riguarda gli altri indizi che continuano a gravare sui ricorrenti.
La CCRP ha negato l'attendibilità della ritrattazione litigiosa perché D._ - colui che secondo le nuove dichiarazioni di C._ sarebbe l'assassino - è deceduto il 29 dicembre 1987 senza mai avere ammesso la sua partecipazione al crimine; perché B._, che fu condannato come assassino, non solo non aveva ritrattato, benché fosse stato sollecitato da Geuer a farlo, ma aveva mantenuto la versione dei fatti fornita durante l'inchiesta e al dibattimento - senza peraltro confermare altre parti delle dichiarazioni di C._ - e aveva smentito l'esistenza di un complotto ai danni dei ricorrenti; perché la ritrattazione di C._, nella quale si legge che la sera del 20 agosto 1971 egli partì con la propria automobile dall'abitazione di Geuer insieme con D._ e A._, è perfino in contraddizione con le deposizioni di Wilhelm Geuer, il quale aveva invece dichiarato agli inquirenti che A._ e C._, entrambi presenti a casa sua, partirono da soli a una decina di minuti d'intervallo l'uno dall'altro; e, infine, perché C._ aveva già rilasciato agli inquirenti diverse versioni dei fatti e aveva ritrattato soltanto nel 1992, benché D._ fosse morto nel 1987.
Tra gli elementi a carico dei condannati, considerati dalla Corte delle assise criminali, la sentenza impugnata ha ricordato: la confessione di B._; gli stretti rapporti che intercorrevano tra Wilhelm Geuer e Gisela Kemperdick, rispettivamente tra costoro ed A._; la quantità e la natura dei contratti stipulati da A._ con Geuer e Kemperdick; la liberazione fittizia di C._ da un debito di fr. 188'000. -- verso A._; la cupidigia dimostrata dagli istanti anche in altri frangenti, segnatamente in occasione di una macchinazione ai danni di E._; le menzogne di Geuer concernenti i suoi rapporti patrimoniali con A._ e il possesso delle cartelle ipotecarie; i propri rapporti con C._, quelli tra C._ e A._, nonché il potere suo e di Kemperdick di disporre di fatto della villa di A._; la personalità di Geuer e di Kemperdick.
Questi elementi erano stati definiti "prove principali" nella sentenza emanata il 30 gennaio 1976 dal Tribunale federale su ricorso di diritto pubblico. Altri elementi erano stati considerati come "prove abbondanziali": le menzogne di Geuer riguardanti il suo alibi e la ricevuta di un tassista; la vettura di Geuer posteggiata sul luogo del crimine; le menzogne di Kemperdick sull'alibi di Geuer; il tentativo di Kemperdick di fare convalidare da altri testimoni le menzogne di Geuer; infine una serie di circostanze in relazione con il mancato assassinio a Freudenstadt (sentenza impugnata, pag. 23 e segg. ).
d) In sostanza, la CCRP ha analizzato se il fatto nuovo, ossia l'estraneità dei ricorrenti al crimine che risultava dalla ritrattazione di C._, fosse provato e se la modifica dello stato di fatto considerato nella sentenza di condanna fosse probabile. Il carattere fondato o meno delle considerazioni che l'hanno spinta a rispondere negativamente a tali quesiti sfugge alla cognizione del Tribunale federale adito con ricorso per cassazione, in quanto concerne l'apprezzamento delle prove (<ref-ruling> consid. 2a, 116 IV 353 consid. 2b). In definitiva il giudizio autorizzativo è stato negativo perché, dagli accertamenti vincolanti riassunti sopra, emergono forti dubbi sull'attendibilità di C._, vale a dire sulla prova del fatto nuovo, e perché la sussistenza di altri indizi rende assai improbabile la modifica dello stato di fatto accertato dai primi giudici (in particolare, sentenza impugnata, pag. 30 consid. 8). In altre parole l'autorità cantonale ha stabilito che i "nova" proposti dai ricorrenti non sono rilevanti nel senso precisato dalla giurisprudenza e per questo motivo ha respinto la domanda di revisione. Essa ha pertanto applicato correttamente i presupposti dell'<ref-law>.
È vero che, per giungere a questa conclusione, la CCRP ha eseguito valutazioni approfondite. Tale modo di procedere si giustifica tuttavia dal fatto che essa non doveva esaminare la credibilità di un testimone nuovo, bensì era chiamata a pronunciarsi sulla dichiarazione rilasciata - quasi vent'anni dopo il primo processo - dalla persona che fu condannata insieme ai ricorrenti - tra l'altro, per correità nell'assassinio - dopo aver mutato più volte le sue deposizioni davanti ai giudici inquirenti, e che fu giudicata credibile dai primi giudici soltanto poiché le sue dichiarazioni erano confermate da altri elementi a carico (sentenza impugnata, pagg. 13 in fine e 18). Va inoltre considerata la complessità particolare dello stato di fatto posto a fondamento del giudizio di merito: la condanna dei ricorrenti fu pronunciata dopo un processo di carattere indiziario durato venti giorni. Queste circostanze hanno reso necessario, oltre all'esame dell'attendibilità di C._, il raffronto delle varie parti della sua ritrattazione con i numerosi elementi considerati a suo tempo a carico dei ricorrenti. Contrariamente a quanto ritengono quest'ultimi, il diritto federale non esclude affatto simili valutazioni: anzi, il giudizio sulla rilevanza nonché sulla probabilità di una modifica dello stato di fatto non poteva prescinderne.
4.- Per le ragioni che precedono e nella misura della sua ammissibilità, il gravame è respinto. Le spese vanno poste a carico dei ricorrenti soccombenti (art. 278 cpv. 1 e 245 PP, 153a OG).

Per questi motivi
il Tribunale federale
pronuncia :
1. Nella misura in cui è ammissibile, il ricorso per cassazione è respinto.
2. La tassa di giustizia di fr. 2'000. -- è posta a carico dei ricorrenti, in solido.
3. Comunicazione al patrocinatore dei ricorrenti, alla Corte di cassazione e di revisione penale del Tribunale d'appello e al Ministero pubblico del Cantone Ticino.