I had enough trying to find this code, so I'm putting what I've pieced together to activate a workflow programmatically (specifically a SharePoint Designer Workflow)

public static string StartWorkflow(ContractListItem contract, string workflowName) {
            SPListItem wfListItem = contract.ListItem;
            SPWorkflowAssociationCollection wfAssocs = wfListItem.ParentList.WorkflowAssociations;
            SPWorkflowAssociation activeWorkflowAssoc = null;
            string errorMessage = string.Empty;

            foreach (SPWorkflowAssociation wfAssoc in wfAssocs) {
                if (wfAssoc.Name.Equals(workflowName)) {
                    activeWorkflowAssoc = wfAssoc;
                    break;
                }
            }

            // if the workflow exists, start the workflow
            SPWorkflow activeWorkflow = null;
            if (activeWorkflowAssoc != null) {
                try {
                    activeWorkflow = SPContext.Current.Site.WorkflowManager.StartWorkflow(
                        wfListItem,
                        activeWorkflowAssoc,
                        "<Data></Data>");
                }
                catch (Exception ex) {
                    ErrorHandler.LogError(Resources.ActionBarWebPart_WorkflowNotStarted, ex);

                    if (activeWorkflow != null)
                        SPWorkflowManager.CancelWorkflow(activeWorkflow);

                    errorMessage = Resources.ActionBarWebPart_WorkflowNotStarted;
                }
            }
            else {
                ErrorHandler.LogError(Resources.ActionBarWebPart_WorkflowDoesNotExist);
                errorMessage = Resources.ActionBarWebPart_WorkflowDoesNotExist;
            }
            return errorMessage;
        }
  }