Take the drain apart and clean everything out. Then use a cannister snake ($10 at ACE) and snake out the drain as far as you can.
Replace the plastic seals where water was leaking out of the top of the trap.
If the plumbing is metal, change everything over to PVC.