Any 3D CAD package that supports assemblies will easily handle linkages and interferences – gears are much less commonly supported, but may be able to be 'fiddled', depending upon exactly what you want to check for.
If just checking a basic concept, rather than taking the design through to real parts, there have been packages that allow you to do this with 2D sketches – though I'm struggling to find anything on the web at present.