Some of my tables are using too much space, and the only way that I can effectively reduce the space used by a table is to modify a varchar fiield lenght for the table and saving it. I have tried all the DBCC commands that I could imagine including CLEANTABLE, SHRINKDB, SHRINKDATABASE, SHRINKFILE, but nothing seams to reclaim the space being used except for changing the definition of the table.
A table with 470684 records was taking roughly 222.98MB in space. I increased one of the varchar fields in the table by 1 and saved the modification. After the modification, the same table reduced to 131.69MB in space. The difference can be fully reclaimed by then running SHRINKDB to remove the free space.