Go figure! I've done this exact thing!
See here and here for the relevant files. Basically, what you have to do is:
Create the block (if you want to store the items in the block after a player has quit, you will need a TileEntity - normal crafting table & my crafting table do not do this)
Create the container & gui
Register the slots in the container & the textures in the gui
Setup a GUI handler
Add an right-click action to the block so that it opens the gui
Create a custom recipe class or use minecraft's IRecipe (I created my own so it could access the player doing the crafting - this is probably not necessary, but it depends on what you're doing)
If you made your own class, create some kind of registry to hold the recipes you want to have, otherwise just use CraftingManager
Add checks in the crafting slot / container to see if the recipe is matched, and if it is, get the result and clear the table
Voila! Tables!
If you have any specific questions, I'd be willing to help when I've got time.