Search on Dynamic PL/SQL.
Basically you can do
EXECUTE IMMEDIATE 'some
string' || 'you concatenate' || 'from strings' || ' and variables: ' || v_table;
I don't think I would use that to describe tables (it's getting late, does desc even work from PL/SQL), I'd use the style that Jan suggested where you spool the commands into a text file and then run it. Well, I don't spool much any more since I use toad, but I basically take the output of a select and run it.
select 'desc ' || tablename || ';' from <wherever you are getting the table names>
[Untested code, no oracle available right this minute]
[ February 21, 2007: Message edited by: Carol Enderlin ]