You might also try this script (if SQL 2005+). It works directly on the SYS tables. You can collapse things down to group on only the object_name and rows if you want. It will show you all tables in a database at once.
select
fg.name filegroup_name,
[object_name],
i.type_desc index_type,
x.type_desc alloc_type,
rows,
sum(total_pages) total_pages,
sum(total_pages) * 8192 / 1024 / 1024 total_MB,
sum(data_pages) data_pages,
sum(data_pages) * 8192 / 1024 / 1024 data_MB,
sum(used_pages) used_pages,
sum(used_pages) * 8192 / 1024 / 1024 used_MB
from sys.filegroups fg
inner join
( select
au.data_space_id,
p.object_id,
object_name(p.object_id) [object_name],
p.index_id,
p.rows,
au.type_desc,
au.total_pages,
au.data_pages,
au.used_pages
from sys.partitions p
inner join sys.allocation_units au on p.hobt_id = au.container_id
where au.type in(1,3)
union all
select
au.data_space_id,
p.object_id,
object_name(p.object_id) [object_name],
p.index_id,
p.rows,
au.type_desc,
au.total_pages,
au.data_pages,
au.used_pages
from sys.partitions p
inner join sys.allocation_units au on p.partition_id = au.container_id
where au.type = 2
) x on x.data_space_id = fg.data_space_id
inner join sys.indexes i on x.object_id = i.object_id and x.index_id = i.index_id
group by fg.name, x.[object_name], i.type_desc, x.type_desc, rows
order by 2, 3