Welcome to WebmasterWorld Guest from 126.96.36.199
-Google search within the site (assuming all your pages are indexed in Google)
-Spider your own site using something like PHP Dig. (good for spiering static text and dynamic content, but you need to re-index your site every time there is an update)
-Query the database on dynamic content (But won't find static content)
I use google search and query the database for strings that match the pattern of being a SKU.
Whatever the database turns up I always put in as the top result(s) and blend the design to look like the rest of the SERPs. I then loop through the google results and remove the particular product page(s) if it would also show up there. (Otherwise the user sees duplicate results.)
I also "enhance" the results by looping through the google results and, when possible, adding a small thumbnail of the particular product that the user will find if they click on that URL.
The sites I do this for are particularly well spidered by Google, so it's unusual for a new page to take more than a few days to show up.