A couple of older hints, such as this one and this one, discuss running Automator workflows from AppleScript. Leopard, however, has built-in Automator support on the Unix command line, which can be called from AppleScript using the do shell script construct. This method also allows passing input values and variables to the workflow.
The basic form of the command is:
automator [-i inputs] [-D variables] /Path/to/Workflow
The -i option provides a list of inputs for the workflow, and the -D option allows temporary setting of workflow variables.
The trick to using this technique, however, is that the list of inputs (and assumedly the list of variables, though that's not made explicit in the man page) needs to be delimited by newline characters, and Unix is picky about the format -- it won't, for instance, accept \n as a newline character. (Thanks to the people over at the Apple support discussion forums for helping me figure that out.)
To call a workflow from AppleScript, use a subroutine like the following:
to run_workflow given inputs:inputVars, workflow:workflowPath
set {tid, AppleScript's text item delimiters} to {AppleScript's text item delimiters, linefeed}
set theInputsList to inputVars as text
set AppleScript's text item delimiters to tid
set cmd to "automator -i '" & theInputsList & "' " & workflowPath
return do shell script cmd
end run_workflowwith timeout of 600 seconds --ten minutes
set theResult to do shell script cmd
end timeout
return theResult
However, in my tests (making a PDF contact sheet of my entire Pictures folder via Automator), the script did not timeout.

