Faits:
A. Le 6 mai 2006, A._, ressortissant jamaïcain résidant en Suisse, a été arrêté à la gare de Zurich alors qu'il attendait une personne transportant environ 1 kg de cocaïne. Il a été placé en détention préventive. Le 8 mai 2006, le Juge d'instruction genevois en charge de la procédure l'a inculpé de "trafic de stupéfiant" au sens de l'art. 19 ch. 2 de la loi fédérale sur les stupéfiants (LStup; RS 812.121). La Chambre d'accusation du canton de Genève (ci-après: la Chambre d'accusation) a prolongé sa détention par ordonnances des 12 mai et 8 août 2006, pour les besoins de l'instruction et en raison des risques de fuite, de collusion et de réitération. A._ a présenté des requêtes de mise en liberté provisoire, qui ont été rejetées par la Chambre d'accusation. Par arrêt du 2 février 2007 (1P.29/2007), la Cour de céans a confirmé l'un de ces rejets, considérant que le maintien en détention était justifié en raison d'un risque de fuite concret.
B. Par arrêt du 27 septembre 2007, la Cour correctionnelle sans jury du canton de Genève (ci-après: la Cour correctionnelle) a condamné A._ à sept ans de peine privative de liberté pour infractions à l'art. 19 ch. 1 et 2 let. a et b LStup. L'intéressé a contesté ce jugement devant la Cour de cassation du canton de Genève (ci-après: la Cour de cassation), qui a rejeté son pourvoi par arrêt du 7 mars 2008. La Cour de droit pénal du Tribunal fédéral a admis le recours déposé contre cet arrêt par A._ et renvoyé la cause à la Cour de cassation pour nouveau jugement (arrêt 6B_317/ 2008 du 2 juillet 2008). La Cour de cassation avait en effet appliqué arbitrairement le droit de procédure cantonal, en introduisant des faits qui ne figuraient pas dans l'état de fait de première instance.
Statuant à nouveau par arrêt du 13 janvier 2009, la Cour de cassation a annulé l'arrêt de la Cour correctionnelle du 27 septembre 2007. Elle a acquitté A._ de trois chefs d'accusation et confirmé le verdict concernant le quatrième chef d'accusation ainsi que la circonstance aggravante de la quantité de stupéfiants pouvant mettre en danger la santé de nombreuses personnes. La cause a été renvoyée à la Cour correctionnelle pour nouvelle décision. Cet arrêt du 13 janvier 2009 a été envoyé aux parties le 19 janvier 2009.
C. Par ordonnance du 20 janvier 2009, la Chambre d'accusation a rejeté une requête de mise en liberté de A._. Elle a considéré que les charges étaient suffisantes et graves "s'agissant d'un trafic de drogue portant sur plus de 5 kg de cocaïne", pour lequel l'intéressé a été condamné à une peine privative de liberté de sept ans. Le maintien en détention était justifié par un risque de réitération, la Chambre d'accusation renvoyant sur ce point à ses précédentes ordonnances des 4 mai et 31 juillet 2007. Quant au risque de fuite, il était qualifié de "très important".
Le 20 janvier 2009, A._ a présenté une nouvelle requête de mise en liberté. Se fondant sur l'arrêt de la Cour de cassation du 13 janvier 2009, qui l'acquittait de trois chefs d'accusation sur quatre, il estimait que son maintien en détention violait le principe de proportionnalité. Par ordonnance du 23 janvier 2009, la Chambre d'accusation a rejeté cette requête et prolongé la détention avant jugement pour une durée de deux mois. Relevant que seule la question de la proportionnalité lui était soumise, elle précisait que les motifs de détention retenus dans son ordonnance du 20 janvier 2009 restaient valables. Elle considérait en substance que la détention était proportionnée au regard de la peine encourue pour le chef d'accusation qui subsistait, celui-ci portant sur un trafic de cocaïne de plus de 1 kg, dans lequel A._ avait joué un rôle dépassant celui de subalterne ou de simple exécutant.
D. Agissant par la voie du recours en matière pénale, A._ demande au Tribunal fédéral d'annuler l'ordonnance du 23 janvier 2009 et d'ordonner sa mise en liberté immédiate. Il requiert en outre l'assistance judiciaire. La Chambre d'accusation se réfère à sa décision. Le Procureur général du canton de Genève s'est déterminé; il conclut au rejet du recours. En réponse à ces déterminations, le recourant a présenté des observations complémentaires.
Considérant en droit:
1. Les décisions relatives au maintien en détention préventive sont des décisions en matière pénale au sens de l'art. 78 al. 1 LTF (cf. ATF 133 I 270 consid. 1.1 p. 273; Message concernant la révision totale de l'organisation judiciaire fédérale du 28 février 2001, FF 2001 p. 4111). Formé en temps utile (art. 100 al. 1 LTF) contre une décision prise en dernière instance cantonale (art. 80 LTF) et qui touche le recourant dans ses intérêts juridiquement protégés (art. 81 al. 1 let. a et b ch. 1 LTF), le recours est recevable.
2. Dans un grief d'ordre formel, qu'il convient d'examiner en premier lieu, le recourant se plaint d'une violation de son droit d'être entendu, en raison d'un défaut de motivation de la décision attaquée. Il reproche à la Chambre d'accusation de l'avoir renvoyé à une précédente ordonnance du 20 janvier 2009 s'agissant des risques de fuite et de réitération, alors que l'arrêt de la Cour de cassation, notifié dans l'intervalle, imposait selon lui un nouvel examen de ces questions.
2.1 Le droit d'être entendu, tel qu'il est garanti à l'art. 29 al. 2 Cst., confère à toute personne le droit d'exiger, en principe, qu'un jugement ou une décision défavorable à sa cause soit motivé. Cette garantie tend à éviter que l'autorité ne se laisse guider par des considérations subjectives ou dépourvues de pertinence; elle contribue ainsi à prévenir une décision arbitraire. L'objet et la précision des indications à fournir dépend de la nature de l'affaire et des circonstances particulières du cas; néanmoins, en règle générale, il suffit que l'autorité mentionne au moins brièvement les motifs qui l'ont guidée (ATF 112 Ia 107 consid. 2b p. 109; voir aussi ATF 133 III 439 consid. 3.3 p. 445; 126 I 97 consid. 2b p. 102; 125 II 369 consid. 2c p. 372). L'autorité peut se limiter à l'examen des questions décisives pour l'issue du litige; il suffit que le justiciable puisse apprécier correctement la portée de la décision et l'attaquer à bon escient et que l'autorité de recours puisse exercer son contrôle (ATF 133 I 270 consid. 3.1 p. 277; 130 II 530 consid. 4.3 p. 540; 125 II 369 consid. 2c p. 372 et les références). Le Tribunal fédéral examine librement si les exigences posées par l'art. 29 al. 2 Cst. ont été respectées (ATF 124 I 49 consid. 3a p. 51; 122 I 153 consid. 3 p. 158 et les arrêts cités).
Selon la jurisprudence rendue en matière de prolongation de la détention préventive, une motivation par renvoi à de précédentes décisions ou par adhésion aux motifs de la demande de prolongation de la détention peut être admissible, pour autant que le prévenu ne fasse pas valoir d'arguments nouveaux (ATF 123 I 31 consid. 2c p. 34; 114 Ia 281 consid. 4c p. 285; 103 Ia 407 consid. 3a p. 409). Encore faut-il que les motifs auxquels il est renvoyé soient développés de manière suffisante au regard des exigences de l'art. 29 al. 2 Cst. (arrêt non publié 1P.198/2006 du 25 avril 2006 consid. 4).
2.2 En l'espèce, l'ordonnance attaquée porte uniquement sur la question de la proportionnalité de la détention. S'agissant des motifs du maintien en détention, la Chambre d'accusation renvoie à une précédente ordonnance du 20 janvier 2009, qui contient elle-même une motivation particulièrement succincte à cet égard; elle se réfère en effet à d'autres ordonnances datant des 4 mai et 31 juillet 2007 concernant le risque de réitération et elle se limite à qualifier le risque de fuite de "très important", comme elle l'aurait "systématiquement retenu [...] avant le prononcé de l'arrêt de la Cour correctionnelle".
La Chambre d'accusation n'a donc pas réexaminé les risques de fuite et de réitération après qu'elle a eu connaissance de l'arrêt de la Cour de cassation du 13 janvier 2009 acquittant le recourant de trois des quatre chefs d'accusation pesant sur lui. Elle a certes tenu compte de cet arrêt dans le cadre de l'examen de la proportionnalité, mais les critères d'appréciation ne sont pas les mêmes s'agissant des risques de fuite et de réitération. On ne saurait donc considérer que les développements de l'ordonnance attaquée relatifs à la proportionnalité valent pour les motifs de détention précités, ce que la Chambre d'accusation ne prétend au demeurant pas. En outre, même si l'on peut supposer que la peine à laquelle est exposé le recourant demeure importante, elle sera vraisemblablement inférieure à celle prononcée le 27 septembre 2007 et il est manifeste que cet élément est susceptible d'influer sur le risque de fuite. A cela s'ajoute le fait que le recourant a déjà subi une longue détention préventive, ce qui réduit d'autant la durée de la peine qui lui resterait à purger après sa condamnation. Ces nouveaux éléments devaient dès lors être pris en compte dans l'appréciation du risque de fuite. Ils devaient être mis en balance avec les attaches du recourant en Suisse, en particulier son fils cadet placé dans une institution spécialisée. Par ailleurs, l'abandon de trois chefs d'accusation sur quatre n'est pas non plus indifférent lorsqu'il s'agit d'apprécier le risque de récidive.
En définitive, en omettant de prendre en compte les circonstances nouvelles et de réexaminer les motifs de maintien en détention, la Chambre d'accusation a failli à son devoir de motivation. On ignore en effet les raisons pour lesquelles cette autorité considère que l'intensité des risques de fuite et de récidive est inchangée. Le simple renvoi à de précédentes ordonnances rendues dans des circonstances différentes n'est pas admissible de ce point de vue, ce d'autant moins que la durée de la détention avant jugement est en l'occurrence particulièrement longue.
3. Il convient dès lors d'annuler l'ordonnance attaquée et de renvoyer la cause à la Chambre d'accusation pour qu'elle statue à nouveau sur la demande de mise en liberté provisoire, à très brève échéance et par une ordonnance suffisamment motivée. Il ne résulte pas nécessairement de l'annulation de l'ordonnance querellée que le recourant doive être immédiatement remis en liberté. En effet, les risques de fuite et de réitération ne peuvent pas d'emblée être exclus.
4. Il s'ensuit que le recours doit être partiellement admis, sans qu'il soit nécessaire d'examiner les autres griefs soulevés par le recourant. L'ordonnance attaquée doit donc être annulée et la cause renvoyée à la Chambre d'accusation pour nouvelle décision au sens des considérants. Il n'y a pas lieu de percevoir des frais judiciaires (art. 66 al. 4 LTF). Le recourant a droit à des dépens, à la charge de l'Etat de Genève (art. 68 al. 1 LTF). Dans ces conditions, sa demande d'assistance judiciaire est sans objet.
Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est admis partiellement. L'ordonnance attaquée est annulée et la cause est renvoyée à la Chambre d'accusation du canton de Genève pour nouvelle décision dans le sens des considérants.
2. La demande de mise en liberté provisoire est rejetée.
3. Il n'est pas perçu de frais judiciaires.
4. Une indemnité de 2'000 fr. est allouée à A._ à titre de dépens, à la charge de l'Etat de Genève.
5. Le présent arrêt est communiqué aux mandataires du recourant, ainsi qu'au Procureur général et à la Chambre d'accusation du canton de Genève.
Lausanne, le 16 février 2009
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président: Le Greffier:
Féraud Rittener