There are quite a few posts on this subject, plus it's item #1 on Toady's good ol' requested/required things list.
I've been doing some thinking on what kind of new functionality I'd like the stockpile system to have. What I realized is that the current system doesn't need that many changes, aside from the all-important ability to specialize them.
The specialization code is also already largely in place, in the form of weapon racks and armor stands. The ability to specify by item type and material type ought to work just fine for all stockpiles.
The current set of stockpiles is also pretty good. Wood, animal, coins, leather, refuse, graveyard, ammo, ore, and cloth stockpiles seem just right. I'd make the following changes, though:
Gems currently includes raw glass -- I'd give glass (plus sand) its own stockpile.
Finished Goods -- is this just crafts? If so, it's just fine.
Bar/Block -- this one needs a lot of separating. I'd put ash, potash, and pearlash into an "Ash Products" stockpile (along with lye). I'd also create a "Fuel" stockpile type for charcoal and coke. And "Block" should be its own stockpile type, with stone/metal/glass as subgroups, and specific materials beneath that.
Stone -- I'd actually forgo a light/dark/grey option and just have "all" "grey only" and pick-individual-types options. White shouldn't include limestone and black shouldn't include obsidian -- and excepting from those, white and black are more or less equal.
Food -- the existing groupings for barrels (plant/seed/meat/fish/raw fish/prepared/etc.) would work well for selectable types, although Drink should probably be separated into its own stockpile. I might like seed and plant types individually selectable as well, to put them near different farm plots, or a barrel for outdoor plants vs. crops.
Furniture -- I'm thinking this should probably be broken into three stockpile types. Specifically:
Furniture:
-Doors
-Beds
-Chairs/Thrones
-Chests/Coffers/Containers
-Tables
-Armor Stands
-Weapon Racks
-Cabinets
-Windows
-Coffins/Caskets
-Statues
Storage:
-Barrels
-Buckets
-Bins
-Bags
Miscellaneous:
-Floodgates
-Cages
-Chains/Ropes
-Animal Traps
-Mechanisms
-Catapult Parts
-Ballista Parts
-Anvils
Armor Stands -- these should probably be altered to include shirts and cloaks, the only two pieces of clothing currently without a home. If pants and shoes are armor, surely shirts and cloaks are as well. Perhaps they should include backpacks, quivers, and waterskins as well.
There's one last issue in the form of animal (meat, leather goods, bones, etc.) and plant-derived (cloth, wood, etc.) products: should one be able to specify the source material of each material type? There are hundreds of animals, so this menu could be overwhelming. I could see doing it in a case where you wanted to put a specific meat barrel near an individual that preferred that food, but that's about it. I think I could live without it altogether, but if it were implemented, it'd probably require the type-in/search interface used on the Manager and Starting Equipment screens.
As Quiller stated in a different thread on the same subject, "It should also give priority to specific stockpiles over general ones. So it puts bones in a bones stockpile, and only when it fills up puts bones in a general refuse pile."
That's about all I can think of for now. 
[ September 25, 2006: Message edited by: Maximus ]