How to measure table size in GB in a table in SQL

There is a sproc call sp_spaceused. Don't know if this is what @Morawski used but as an example on a dev db I had handy:

exec sp_spaceused 'aspnet_users'

gives

name          rows    reserved     data      index_size     unused
------------- ------- ------------ --------  ------------   ---------- 
aspnet_Users  3       48 KB        8 KB      40 KB          0 KB

-- Measures tables size (in kilobytes)
-- Tested in MS SQL Server 2008 R2

declare @t table (
name nvarchar(100), [rows] int, [reserved] nvarchar(100), [data] nvarchar(100), [index_size] nvarchar(100), [unused] nvarchar(100)
)
declare @name nvarchar(100)

declare tt cursor for
Select name from sys.tables
open tt

fetch next from tt into @name
while @@FETCH_STATUS = 0
begin
  insert into @t
  exec sp_spaceused @name
  fetch next from tt into @name
end

close tt
deallocate tt

select name as table_name, [rows] as rows_count, data + [index] as total_size, data as data_size, [index] as index_size
from (select name,
[rows],
cast (LEFT(data, LEN(data)-3) as int) data,
cast (LEFT(index_size, LEN(index_size)-3) as int) [index]
 from @t
) x
order by 3 desc, 1

Not sure about the TSQL script (I'm sure it exists), but you can find it through the UI (SSMS) as follows:

1) R-click the table
2) ...Properties
3) ...Storage tab

From there, it will tell you both the "data space" and the "index space" -- so if you want a total footprint, just add those up.

EDIT
Consider also log space if you're looking for a total footprint for the table.

Here is info on the stored procedure listed in @jon's answer. Also, it references the sys views where you can query the space usage data directly. http://msdn.microsoft.com/en-us/library/ms188776.aspx