I just ran across this same issue and, for me, the problem was that I had a version of Cyanogenmod installed on my phone that didn't have Voice Search installed. Here are my steps to resolve it:

Download the APK file from this thread in xda-developers. That thread has a high-level description of how to install that file but the step-by-step is below.

Using a command prompt (windows) or shell window (linux), run the adb application located in your android sdk/platform-tools folder

Ensure it can talk to your device by running the command adb devicesIf your device is not listed, you'll need to make sure your USB drivers for the phone are correct.

Obtain root access through adb. You probably already have it but run adb root

Go into the phone shell by executing adb shell

Find the /dev listing that corresponds to "/system" using the command cat /proc/mounts. You are looking for something like /dev/block/mtdblock4 /system yaffs2 ro, realtime 0 0.

Using the corresponding /dev entry, re-mount the file system into read/write mode with the command (I'm using the example above but the pattern should be obvious) mount -o rw,remount /dev/block/mtdblock4. Hit enter and exit adb shell with the command exit

Go back in to adb shell using adb shell and re-mount the storage in read-only mode (for safety, you could leave this out if you wanted to) with mount -o ro,remount /dev/block/mtdblock4 and exit the shell.

That's it. No restart needed. You can test this by going to regular Google search and hitting the microphone button to see if it launches.