Stephen is correct. The semicolon is a command seperator; GO is a batch seperator.
Though the semicolon is completely optional in SQL Server 2000, this changes in SQL Server 2005. In some cases (especially before a CTE), using a semicolon is required.
Best, Hugo