My money is on ignition... One question, has the timing belt been replaced? Could have slipped a tooth. If it's off by a tooth, it may still idle fine, and run fine above 2500 rpms or so, but below it'll be doggy as hell. Might as well check it and see if the belt slipped, or if the tensioner broke and isn't keeping it tight. Other than that, check the plug wires and spark plugs.