Faits: A. A._ se trouve en détention préventive depuis le 8 mars 2008. Il est prévenu de tentative de meurtre, subsidiairement de mise en danger de la vie d'autrui, voies de fait, injures et contrainte. Il lui est reproché d'avoir giflé à plusieurs reprises son ex-épouse, B._, au cours d'une dispute survenue le 7 mars 2008, alors qu'il était sous l'influence de l'alcool; il lui aurait ensuite serré le cou, ne relâchant son étreinte qu'après avoir constaté que la victime ne pouvait plus respirer et était sur le point de s'évanouir; il l'aurait encore retenue en lui mettant la main devant la bouche lorsqu'elle a tenté d'appeler de l'aide. B. Le 14 mars 2008, le Juge d'instruction de l'arrondissement de Lausanne (ci-après: le Juge d'instruction) a considéré que le risque de récidive n'était plus avéré et a ordonné la libération du prévenu. Par arrêt du 3 avril 2008, le Tribunal d'accusation du Tribunal cantonal du canton de Vaud (ci-après: le Tribunal cantonal) a admis le recours formé contre cette décision par le Procureur général du canton de Vaud et a ordonné le maintien en détention préventive. Le Tribunal fédéral a rejeté le recours en matière pénale formé contre cet arrêt par le prévenu, considérant qu'une libération ne pouvait être envisagée sans savoir préalablement quel suivi médical serait effectivement mis en place afin de réduire au maximum le risque de récidive (arrêt 1B_94/2008 du 9 mai 2008). Par ordonnance du 8 mai 2008, le Juge d'instruction a rejeté la demande de mise en liberté provisoire présentée par A._, au motif que le suivi médical proposé par l'intéressé était peu approprié à atteindre le but recherché. Cette décision a été confirmée par le Tribunal cantonal, puis par le Tribunal fédéral (arrêt 1B_150/2008 du 20 juin 2008). Le 25 juillet 2008, A._ a présenté une nouvelle requête de mise en liberté, qui a été rejetée au motif que les mesures proposées par l'intéressé ne permettaient pas d'écarter le risque de récidive. Le Tribunal cantonal a rejeté le recours formé par A._ contre cette ordonnance, dans un arrêt du 20 août 2008. C. Par ordonnance du 7 août 2008, le Juge d'instruction a renvoyé A._ en jugement devant le Tribunal correctionnel de l'arrondissement de La Côte (ci-après: le Tribunal correctionnel) pour y répondre des infractions de tentative de meurtre, subsidiairement de mise en danger de la vie d'autrui, de voies de fait, d'injure et de contrainte. Le 3 septembre 2008, ledit tribunal a fixé la date de l'audience de jugement au 16 décembre 2008. La Présidente du Tribunal correctionnel a rejeté, par prononcé du 11 septembre 2008, la nouvelle requête de mise en liberté présentée le 5 septembre 2008 par le prévenu. Vu le risque de récidive, elle a considéré qu'une mise en liberté ne pouvait être envisagée qu'à condition qu'il soit admis dans un établissement pour personnes dépendantes de l'alcool. En invoquant une violation des principes de célérité et de proportionnalité, A._ a recouru contre ce prononcé auprès du Tribunal cantonal, qui a rejeté le recours dans un arrêt du 29 septembre 2008. Cette autorité a considéré en substance que la durée de la détention était proportionnée à la peine encourue et qu'il n'y avait pas de retard injustifié dans le déroulement de la procédure. D. Agissant par la voie du recours en matière pénale, A._ demande au Tribunal fédéral d'annuler cet arrêt et d'ordonner sa mise en liberté immédiate. Il invoque une violation des art. 10 et 31 al. 3 Cst. ainsi que de l'art. 5 par. 3 CEDH, soit la violation des principes de proportionnalité et de célérité. Il requiert en outre l'assistance judiciaire gratuite. Le Procureur général du canton de Vaud conclut au rejet du recours. Le Tribunal cantonal se réfère aux considérants de son arrêt. A._ a renoncé à présenter des observations complémentaires. 