Fatti:
A. Dal 5 luglio 1977 al 31 ottobre 2004 B._, nato nel 1952, ha lavorato alle dipendenze della ditta C._SA. Durante questo periodo egli ha beneficiato, per il tramite della datrice di lavoro, di un'assicurazione collettiva d'indennità giornaliera in caso di malattia presso la Cassa malati A._.
B. In vista dell'uscita dall'assicurazione collettiva, il 30 settembre 2004 B._ ha sottoscritto una "proposta di assicurazione e dichiarazione di adesione" tendente al trasferimento dall'assicurazione collettiva all'assicurazione individuale della Cassa malati A._.
C. Dal 1° novembre 2004 al 31 ottobre 2006 B._ è stato iscritto presso la cassa disoccupazione Y._, che gli ha versato le relative indennità.
D. Il 24 marzo 2006 B._ è stato dichiarato inabile al lavoro al 100 % a causa di una sindrome depressiva ricorrente.
D.a Trascorso il periodo di attesa, a partire dal 24 aprile 2006 la Cassa malati A._ (di seguito Cassa) gli ha versato l'indennità giornaliera assicurata, di fr. 100.--.
D.b Con lettera del 18 settembre 2006 la Cassa ha comunicato a B._ che, a seguito della scadenza del termine quadro dell'assicurazione contro la disoccupazione, dopo il 31 ottobre 2006 non gli avrebbe più versato nessuna indennità. Questo perché a partire da tale data egli non sarebbe più stato in grado di giustificare una perdita di salario, condizione indispensabile per poter usufruire delle prestazioni d'indennità giornaliera.
Successivamente, viste le obiezioni sollevate da B._ contro questa decisione, la Cassa ha anche ricordato che l'art. 12 n. 9 delle Condizioni Generali d'Assicurazione (CGA) prevedeva esplicitamente la fine della copertura assicurativa una volta scaduto il periodo quadro dell'assicurazione contro la disoccupazione.
Ha inoltre evocato la giurisprudenza del Tribunale federale delle assicurazioni secondo la quale, qualora l'assicurato si ammali dopo essere divenuto disoccupato, si presume ch'egli non eserciterebbe comunque alcuna attività, precisando che questa presunzione può essere ribaltata solo se l'assicurato-disoccupato può dimostrare, con un grado di verosimiglianza preponderante, che senza la malattia avrebbe iniziato a lavorare in un posto ben preciso.
Pur negando l'applicabilità di tale giurisprudenza al suo caso, il 18 dicembre 2006 B._ ha prodotto uno scritto nel quale si accertava che senza la malattia egli avrebbe potuto lavorare a metà tempo presso la sala giochi D._SA.
Ciononostante la Cassa ha rifiutato ogni ulteriore versamento.
E. L'8 marzo 2007 B._ ha convenuto la Cassa dinanzi al Tribunale delle assicurazioni del Cantone Ticino onde ottenere il pagamento di indennità giornaliere di fr. 100.-- dal 1° novembre 2006 e fino all'interruzione dell'inabilità lavorativa.
La Cassa si è opposta a tale richiesta per i motivi già espressi nello scambio epistolare che ha preceduto la causa.
Con sentenza del 9 agosto 2007 il Tribunale cantonale delle assicurazioni ha accolto la petizione. Considerato l'avvenuto passaggio di B._ nell'assicurazione individuale della Cassa, la Corte ticinese ha infatti constatato che, a differenza di quanto previsto nelle CGA dell'assicurazione collettiva richiamate dalla Cassa, nelle CGA dell'assicurazione individuale l'estinzione del diritto alle prestazioni di disoccupazione non figura fra le circostanze che comportano la fine della copertura assicurativa. In assenza di una base legale - hanno proseguito i giudici cantonali - non si vede per quale motivo la fine del periodo quadro dell'assicurazione contro la disoccupazione dovrebbe avere come conseguenza la cessazione del versamento delle prestazioni di malattia. In queste condizioni, il Tribunale cantonale ha ritenuto di poter lasciare aperta la questione di sapere se la giurisprudenza evocata dalla Cassa possa trovare applicazione nella fattispecie in rassegna, giacché di regola essa va applicata laddove l'assicuratore rifiuta il versamento delle indennità sin dall'inizio della malattia e non in un caso come quello in discussione, dove l'assicuratore, dopo aver fornito le prestazioni per sette mesi, decide di cessarne il versamento.
Visto l'accoglimento della petizione per i motivi appena esposti, la Corte ha infine rinunciato all'audizione di E._, amministratore della D._SA, chiamato a riferire sulla proposta di lavoro fatta a B._ nel dicembre 2006.
F. Contro questa decisione la Cassa malati A._ ha inoltrato, il 10 settembre 2007, un ricorso in materia civile al Tribunale federale volto a ottenere, in via principale, la modifica della pronunzia impugnata nel senso della reiezione della petizione e, in via subordinata, il rinvio della causa all'autorità cantonale per un esame più approfondito della vertenza.
Nelle osservazioni del 29 ottobre 2007 B._ ha proposto di respingere il gravame e di confermare la decisione impugnata; egli ha pure chiesto di esser posto al beneficio dell'assistenza giudiziaria e del gratuito patrocinio. L'autorità cantonale ha invece rinunciato a determinarsi.
Diritto:
1. Il Tribunale federale si pronuncia d'ufficio e con pieno potere d'esame sulla propria competenza e sull'ammissibilità del rimedio esperito (art. 29 cpv. 1 LTF; DTF 133 III 462 consid. 2, 629 consid. 2).
1.1 La vertenza riguarda prestazioni scaturenti da un contratto di assicurazione d'indennità giornaliera in caso di malattia retto dalla Legge federale sul contratto d'assicurazione (LCA); si tratta quindi di una causa civile (DTF 124 III 44 consid. 1a pag. 46 segg.).
1.2 La causa ha carattere pecuniario siccome concerne l'obbligo di versamento di indennità giornaliere imposto alla ricorrente.
Giusta l'art. 74 cpv. 1 lett. b LTF, in una causa civile di carattere pecuniario il ricorso in materia civile è proponibile se il valore litigioso ammonta almeno a fr. 30'000.--.
In concreto, la controversia verte sul pagamento di un'indennità giornaliera di fr. 100.--. A norma dell'art. 51 cpv. 4 LTF le rendite e prestazioni periodiche hanno il valore del capitale che rappresentano.
Ora, stando a quanto accertato nella sentenza impugnata - e non contestato nel gravame - considerato che la durata massima dei giorni indennizzabili è di 730 e che l'opponente ha già beneficiato di 160 indennità giornaliere (rispettivamente 190, se nel calcolo si computano anche i 30 giorni di attesa), dinanzi all'autorità cantonale la controversia verteva ancora su un importo di fr. 57'000.-- (rispettivamente 54'000.--).
Il valore litigioso minimo prescritto dalla legge è quindi in ogni caso raggiunto.
1.3 Per il resto, la ricevibilità del ricorso in materia civile - interposto tempestivamente (art. 100 cpv. 1 LTF) dalla parte soccombente in sede cantonale (art. 76 cpv. 1 lett. a LTF) contro una decisione finale (art. 90 LTF) pronunciata dall'autorità ticinese di ultima istanza (art. 75 cpv. 1 LTF) - non pone problemi.
2. Nella prima parte del suo allegato la ricorrente assevera in sostanza che alla fattispecie in esame sarebbero applicabili le CGA dell'assicurazione collettiva d'indennità giornaliera secondo la LCA, e quindi l'art. 12 n. 9, giusta il quale la copertura assicurativa come pure il diritto alle prestazioni cessano quando si estingue il diritto alle prestazioni di disoccupazione.
2.1 La diversa conclusione cui sono giunti i giudici cantonali è - secondo la ricorrente - il risultato di una valutazione del materiale probatorio agli atti che comporta "un abuso di diritto", siccome basata unicamente sulla proposta di assicurazione sottoscritta dall'opponente il 30 settembre 2004, che conteneva informazioni contraddittorie. La Corte ticinese avrebbe dovuto dare maggior importanza al tenore della polizza assicurativa inviata all'opponente - e da questi non contestata - che indicava "PC" e non "PI". La ricorrente sostiene infatti che, contrariamente a quanto stabilito nella sentenza impugnata, la "volontà concordante e reciproca delle parti" era quella di "assoggettare lo stipulante d'assicurazione alle stesse condizioni di quelle del contratto collettivo di cui beneficiava con il suo datore di lavoro ma in qualità di membro individuale, e non quella di fargli firmare una nuova copertura assicurativa presso un nuovo assicuratore [la X._SA]".
2.2 Così come formulata la censura suscita delle perplessità in punto alla sua motivazione.
La ricorrente non indica infatti quali sarebbero le norme giuridiche violate dall'autorità giudiziaria cantonale; essa mescola argomenti concernenti l'apprezzamento delle prove, l'accertamento dei fatti e l'applicazione del diritto, come se il Tribunale federale fosse un'autorità superiore di appello incaricata di rivedere liberamente il fatto e il diritto, ciò che invece non è.
2.3 Nella misura in cui intende ridiscutere l'apprezzamento delle prove e l'accertamento dei fatti che ne consegue, giova allora rammentare che, di principio, il Tribunale federale fonda il suo ragionamento giuridico sull'accertamento dei fatti dell'autorità inferiore (art. 105 cpv. 1 LTF); può scostarsene solo se esso è stato svolto in modo manifestamente inesatto o in violazione del diritto ai sensi dell'art. 95 (art. 105 cpv. 2 LTF).
I fatti accertati sono "manifestamente inesatti" quando l'istanza inferiore è incorsa nell'arbitrio, vietato dall'art. 9 Cost. (cfr. DTF 133 III 393 consid. 7.1 pag. 398). Per giurisprudenza invalsa, l'arbitrio non si realizza già qualora la soluzione proposta con il ricorso possa apparire sostenibile o addirittura migliore rispetto a quella contestata; il Tribunale federale annulla la pronunzia criticata solo se il giudice del merito ha emanato un giudizio che appare - e ciò non solo nella sua motivazione bensì anche nell'esito - manifestamente insostenibile, in aperto contrasto con la situazione reale, gravemente lesivo di una norma o di un principio giuridico chiaro e indiscusso oppure in contraddizione urtante con il sentimento della giustizia e dell'equità (DTF 132 III 209 consid. 2.1 con rinvii).
Per quanto concerne più in particolare l'apprezzamento delle prove e l'accertamento dei fatti, il giudice - il quale in questo ambito dispone di un ampio margine di apprezzamento - incorre nell'arbitrio se misconosce manifestamente il senso e la portata di un mezzo di prova, se omette senza valida ragione di tener conto di un elemento di prova importante, suscettibile di modificare l'esito della vertenza, oppure se ammette o nega un fatto ponendosi in aperto contrasto con gli atti di causa o interpretandoli in modo insostenibile (DTF 129 I 8 consid. 2.1).
Incombe alla parte che propone una fattispecie diversa da quella contenuta nella sentenza impugnata il compito di esporre in maniera circostanziata il motivo che la induce a ritenere adempiute le condizioni di una delle eccezioni previste dall'art. 105 cpv. 2 LTF (art. 97 cpv. 1 LTF).
Occorre inoltre che l'eliminazione dell'asserito vizio possa influire in maniera determinante sull'esito della causa (art. 97 cpv. 1 seconda parte LTF), altrimenti non si può tener conto di una fattispecie diversa da quella esposta nella decisione impugnata.
2.4 Gli argomenti che la ricorrente adduce per negare l'avvenuto passaggio dell'opponente nell'assicurazione individuale non soddisfano i requisiti appena esposti.
Di certo la ricorrente non può dirsi estranea alla proposta di assicurazione sottoscritta dall'opponente il 30 settembre 2004. Si tratta infatti di un formulario allestito dalla "Società d'assicurazioni, membri del gruppo X._" fra cui figura anche la ricorrente, chiaramente evidenziata. E poco importa che le CGA dell'assicurazione individuale prodotte in causa indichino la X._SA quale assicuratore, trattandosi di un'altra delle assicurazioni affiliate al medesimo gruppo, per la quale valgono pertanto le medesime CGA. Rilevante è il fatto che, contrariamente a quanto preteso nel gravame, la proposta di assicurazione sottoscritta dall'opponente il 30 settembre 2004 non soffre di alcuna contraddizione. In essa viene chiaramente indicato che l'opponente, presto "disoccupato", chiedeva il "trasferimento dall'assicurazione collettiva all'individuale" e, più in particolare, all'assicurazione complementare secondo LCA "PI indennità giornaliera per malattia" di fr. 100.--, per una durata massima di 730 giorni e con un periodo di attesa di 30 giorni, dietro pagamento di un premio mensile di fr. 186.--. Queste indicazioni trovano riscontro nella polizza di assicurazione rilasciata all'opponente per il periodo dal 01.09.2004 al 31.12.2004, eccezion fatta per l'indicazione "PC" al posto di "PI", manifestamente frutto di un'inavvertenza della ricorrente. Se, infatti, come da lei richiesto, ci si basa al comportamento tenuto dalle parti dopo la stipulazione del contratto per stabilire la loro "vera e concorde volontà" (cfr. DTF 129 III 675 consid. 2.3 pag. 680), non si può non osservare come la ricorrente stessa, nella lettera indirizzata all'opponente il 30 maggio 2006 - riferendosi alla malattia all'origine dell'attuale vertenza - abbia fatto presente all'opponente che l'"art. 8 n. 2 delle CGA dell'assicurazione individuale per un'indennità giornaliera PI" gli imponeva di avvisare la cassa della malattia entro 15 giorni dal verificarsi dell'incapacità lavorativa. Ma non solo. Nella già citata lettera del 18 settembre 2006, quando ha comunicato all'opponente che avrebbe interrotto il versamento dell'indennità giornaliera, la ricorrente non ha accennato in alcun modo alle CGA dell'assicurazione collettiva.
È solo in un secondo tempo che ha addotto anche questo argomento per giustificare il suo rifiuto di fornire ulteriori prestazioni.
In queste circostanze, la decisione dei giudici cantonali di ammettere l'avvenuto passaggio nell'assicurazione individuale, con relative CGA, resiste alla critica.
2.5 Si può comunque ancora osservare che le stesse CGA dell'assicurazione collettiva invocate dalla ricorrente prevedono, all'art. 13 (intitolato "uscita e fine del contratto collettivo") - il cui tenore corrisponde a quello dell'art. 71 cpv. 1 LAMal, applicabile anche alle assicurazioni private in virtù del rinvio contenuto nell'art. 100 cpv. 2 LCA - che, se cessa di appartenere alla cerchia degli assicurati, ogni persona abile al lavoro e residente in Svizzera ha il diritto di mantenere la sua copertura assicurativa a titolo individuale (cfr. art. 13 n. 1). L'assicurato deve fare valere il suo diritto al passaggio entro 30 giorni dall'uscita dal contratto collettivo (cfr. art. 13 n. 2).
Come risulta da quanto esposto al punto precedente, l'opponente ha esercitato questo suo diritto. Preso atto della disdetta del suo contratto di lavoro con effetto al 31 ottobre 2004 - e, di conseguenza, della sua uscita dalla cerchia degli assicurati mediante contratto collettivo - il 30 settembre 2004 egli ha chiesto il trasferimento dall'assicurazione collettiva all'assicurazione individuale. E lo ha ottenuto, come risulta dalla polizza versata agli atti.
2.6 Ne discende che la ricorrente non può prevalersi delle CGA dell'assicurazione collettiva per rifiutare il versamento dell'indennità giornaliera dopo il 1° novembre 2006, essendo l'opponente uscito dalla cerchia degli assicurati mediante contratto collettivo a far tempo dal 1° settembre 2004.
Né essa può richiamarsi alle CGA dell'assicurazione individuale, nelle quali - come indicato nella sentenza impugnata - l'estinzione del diritto alle prestazioni di disoccupazione non è menzionata fra le circostanze che conducono alla fine della copertura assicurativa e del diritto alle prestazioni (cfr. art. 6 n. 4 CGA dell'assicurazione individuale).
3. La ricorrente è comunque dell'avviso che, a prescindere da quanto appena esposto, l'opponente non può in nessun caso pretendere il versamento di un'indennità giornaliera dopo il 1° novembre 2006.
Essendo senza lavoro, egli non subisce infatti più alcuna perdita di guadagno a causa della malattia, presupposto essenziale e indispensabile per il versamento dell'indennità giornaliera sia nell'ambito dell'assicurazione collettiva che in quello dell'assicurazione individuale (cfr. art. 1 CGA). L'argomentazione ricorsuale è pertinente.
3.1 Effettivamente, l'art. 1 CGA dell'assicurazione individuale (intitolato "Oggetto dell'assicurazione") stabilisce che l'"assicuratore accorda la sua garanzia per le conseguenze economiche di una incapacità di guadagno risultante da una malattia".
3.2 Come già in sede cantonale, la ricorrente si prevale della giurisprudenza sviluppata in questo ambito sotto l'egida della LAMal (cfr. sentenza del 17 luglio 1998 nella causa K 33/98 consid. 3, pubblicata in: RAMI 1998 no. KV 43 pag. 422 seg.).
La Corte ticinese ha lasciato aperta la questione dell'applicabilità di questa giurisprudenza alla fattispecie in esame, mentre l'opponente vi si oppone recisamente, il contratto di assicurazione essendo retto dalla LCA. A torto.
La giurisprudenza citata è stata infatti sviluppata nel quadro dell'applicazione dell'art. 73 LAMal, concernente il coordinamento dell'assicurazione d'indennità giornaliera con l'assicurazione contro la disoccupazione, e l'art. 100 cpv. 2 LCA rinvia esplicitamente a questa norma per gli assicurati considerati disoccupati ai sensi dell'art. 10 LADI, com'era l'opponente dopo l'uscita dall'assicurazione collettiva. Mediante il rinvio contenuto nell'art. 100 cpv. 2 LCA vengono coordinate le norme del diritto delle assicurazioni private e quelle del diritto delle assicurazioni sociali e viene istituita una regolamentazione unica per il caso in cui una persona assicurata esca dall'assicurazione collettiva (DTF 127 III 235 consid. 2c pag. 238).
3.3 Secondo la predetta giurisprudenza del Tribunale federale delle assicurazioni, il fatto di essere assicurato per un'indennità giornaliera di un determinato importo e di avere pagato i relativi premi non comporta automaticamente il diritto al versamento della somma assicurata in caso di incapacità lavorativa; occorre ancora che l'assicurato subisca una perdita di guadagno in misura tale da giustificare il pagamento dell'importo assicurato (RAMI 1998 no. KV 43 pag. 421 consid. 2a; cfr. anche la sentenza non pubblicata del 4 maggio 2004 nella causa K 146/03 consid. 3.1).
3.3.1 Sotto il suo titolo marginale "Coordinamento con l'assicurazione contro la disoccupazione", l'art. 73 cpv. 1 LAMal dispone che ai disoccupati colpiti da una incapacità lavorativa superiore al 50 % è pagata l'intera indennità giornaliera. Stando a tale titolo marginale e alla regolamentazione di coordinamento corrispondente prevista dall'art. 28 LADI, il diritto a un'indennità giornaliera secondo l'art. 73 LAMal risulta strettamente legato al fatto che, se non fosse malato, l'assicurato potrebbe pretendere indennità di disoccupazione ai sensi della LADI. L'idea alla base di questa regolamentazione è la seguente: subisce una perdita di guadagno a carico dell'assicurazione d'indennità giornaliera in caso di malattia la persona che, di principio, avrebbe diritto a indennità di disoccupazione ma che, a seguito di una malattia, è temporaneamente inidonea al collocamento e non può di conseguenza percepire una simile indennità (RAMI 1998 no. KV 43 pag. 422 consid. 3a; cfr. anche la sentenza non pubblicata del 4 maggio 2004 nella causa K 146/03 consid. 3.3.1).
Questo spiega l'avvenuto versamento dell'indennità giornaliera da parte della ricorrente dal 24 aprile 2006 al 31 ottobre 2006, quando l'opponente ha esaurito il diritto alle prestazioni di disoccupazione.
3.3.2 Nondimeno - continua il Tribunale federale delle assicurazioni - una persona senza un'attività lavorativa può subire una perdita di guadagno conferente il diritto a un'indennità giornaliera dell'assicurazione malattia anche quando non può pretendere un'indennità di disoccupazione ai sensi della LADI. Ciò si verifica tuttavia soltanto se si può ritenere, con un grado di verosimiglianza preponderante, che senza la malattia l'assicurato eserciterebbe un'attività lucrativa. A tal proposito vanno distinte due ipotesi:
- se il rapporto di lavoro è terminato in un momento in cui la persona assicurata risultava già incapace al lavoro a causa di malattia, vale la presunzione che senza la malattia essa eserciterebbe un'attività lucrativa; in tale eventualità, il diritto a un'indennità giornaliera può essere negato soltanto in presenza di indizi concreti suscettibili di fare concludere, con un grado di verosimiglianza preponderante, che la persona assicurata non eserciterebbe attività lucrativa nemmeno senza il danno alla salute (RAMI 1998 no. KV 43 pag. 422 consid. 3b; cfr. anche la sentenza non pubblicata del 4 maggio 2004 nella causa K 146/03 consid. 3.3.2 prima parte);
- qualora la persona assicurata si ammali dopo essere divenuta disoccupata, vale invece la presunzione contraria, ossia che anche senza malattia continuerebbe a non esercitare un'attività lucrativa; tale presunzione può essere ribaltata se si può ammettere, con un grado di verosimiglianza preponderante, che senza la malattia la persona assicurata avrebbe iniziato a lavorare in un posto ben definito (RAMI 1998 no. KV 43 pag. 423 consid. 3b; cfr. anche la sentenza non pubblicata del 4 maggio 2004 nella causa K 146/03 consid. 3.3.2 seconda parte).
3.4 In concreto, l'opponente si è ammalato il 24 marzo 2006, oltre un anno dopo essere divenuto disoccupato.
Stando alla seconda ipotesi descritta dalla predetta giurisprudenza vale dunque la presunzione che anche senza malattia egli avrebbe continuato a non esercitare un'attività lucrativa. Tale presunzione potrebbe essere ribaltata solo qualora si potesse ammettere, con un grado di verosimiglianza preponderante, che senza la malattia l'opponente avrebbe iniziato a lavorare in un posto ben definito.
3.4.1 Ora, nelle osservazioni al ricorso in materia civile l'opponente ricorda che, pur contestando di principio l'applicabilità di questa giurisprudenza al suo caso, prima ancora dell'avvio della procedura giudiziaria, il 18 dicembre 2006, egli aveva trasmesso alla ricorrente uno scritto con il quale si certificava che senza la malattia egli avrebbe potuto lavorare a metà tempo presso la sala giochi D._SA. In sede giudiziaria aveva poi indicato la possibilità di sentire quale teste l'amministratore di questa società, E._.
3.4.2 Come già detto, la Corte cantonale non ha reputato utile sentire questo teste, dato l'accoglimento della petizione per i motivi indicati al consid. 2.
Alla luce di tutto quanto appena esposto, questa decisione non può essere condivisa. La deposizione di E._ potrebbe infatti risultare determinante ai fini del giudizio, siccome suscettibile di rovesciare la presunzione a sfavore dell'opponente. Si giustifica pertanto di rinviare la causa all'autorità cantonale per completamento dell'istruttoria, come peraltro richiesto in via subordinata dalla stessa ricorrente.
3.4.3 Giovi infine osservare che in questa sede non si può tenere conto dell'affermazione secondo cui l'opponente avrebbe nel frattempo postulato una rendita d'invalidità. Priva di ogni riscontro nella sentenza impugnata, si tratta infatti di una circostanza nuova e quindi inammissibile (art. 99 cpv. 1 LTF).
Sia come sia, tenuto conto del tenore degli argomenti della ricorrente - che in coda al gravame insiste sull'inabilità al lavoro dell'opponente a causa della malattia - può essere utile precisare che ai fini del giudizio sull'attuale vertenza non occorre tanto dimostrare l'incapacità lavorativa dell'opponente, quanto che tale incapacità gli causa una perdita economica poiché, se non fosse malato, lavorerebbe in un posto ben definito. Qualora poi, in seguito, egli dovesse essere posto al beneficio di rendite AI, si potrà - se del caso - procedere ad un adeguamento delle prestazioni fornite dalle varie assicurazioni in considerazione del principio del divieto del sovraindennizzo, così come previsto anche nell'art. 12 CGA dell'assicurazione individuale.
4. In conclusione, la domanda principale della ricorrente, tendente all'annullamento della sentenza impugnata e alla reiezione della petizione viene respinta.
Viene invece accolta la domanda formulata in via subordinata, intesa ad ottenere il rinvio della causa all'autorità cantonale giusta l'art. 107 cpv. 2 LTF, per completamento dell'istruttoria e nuovo giudizio, cosi come indicato al consid. 3.4.2.
4.1 Gli oneri processuali seguono la soccombenza. Considerato che la domanda principale della ricorrente è stata respinta e che l'esito della causa è ancora incerto, si giustifica di porre le spese di giudizio a carico di entrambe le parti, in ragione di metà ciascuno (art. 66 cpv. 1 LTF).
4.2 Nonostante l'esito della procedura ricorsuale si può accogliere la domanda di assistenza giudiziaria e gratuito patrocinio dell'opponente, giacché, la situazione d'indigenza è pacifica e la complessità dei quesiti posti dalla fattispecie giustifica l'ausilio di un legale (cfr. art. 64 cpv. 1 e 2 LTF).
L'opponente viene comunque avvisato che qualora la sua situazione finanziaria dovesse migliorare, egli sarà tenuto a risarcire la cassa del Tribunale, così come prescritto dall'art. 64 cpv. 4 LTF.
Per questi motivi, il Tribunale federale pronuncia:
1. Il ricorso è parzialmente accolto. Di conseguenza la sentenza emanata il 9 agosto 2007 dal Tribunale delle assicurazioni del Cantone Ticino è annullata e la causa è rinviata all'autorità cantonale per nuovo giudizio nel senso dei considerandi.
2. La domanda di assistenza giudiziaria e gratuito patrocinio di B._ è accolta.
3. Le spese giudiziarie di fr. 3'000.-- sono poste a carico di entrambe le parti, in ragione di metà ciascuno. La quota a carico di B._ viene per il momento assunta dalla cassa del Tribunale federale.
4. L'avv. Cesare Lepori viene incaricato del gratuito patrocinio di B._ e per la procedura in sede federale gli viene corrisposta un'indennità per ripetibili di fr. 2'000.--, a carico della cassa del Tribunale federale.
5. Comunicazione alla ricorrente, al patrocinatore dell'opponente e al Tribunale delle assicurazioni del Cantone Ticino.