GNU grep supports the -r option, which means "recursive". It's a little less cumbersome than using find. e.g. you can grep files in sub-directories specified on the command line, e.g.
grep -r 'mypattern' /home/matthew
Will search all files in sub-directories of /home/matthew for "mypattern". You can search all files on the whole system using / instead of /home/matthew. Note that searching your whole filesystem probably won't be possible unless you run the command as root since many files are not readable by regular users.
Also note that it might be a good idea to run the command with nice since it'll take an age anyway, and you will probably want to minimize impact on other programs as it runs.