You can call grep with the -r switch to make it search recursively.
To search all files under /dir for "blah", run the following:
grep -r blah /dir
You can not use wildards directly in this manner, for example, the following will not search all text files:
grep -r blah *.txt
This doesn't work because the wildcard is expanded by the shell before grep is called. Instead, search the current directory (or whichever one you want) and pass the --include option:
grep -r blah . --include "*.txt"