Seems to be complex, but its not that bad:
$orderModel = Mage::getModel('sales/order')->load($myOrderId);
$invoices = $orderModel->getInvoiceCollection();
$invoicesSet = array();
foreach ($invoices as $_invoice) {
array_push($invoicesSet, $_invoice);
}
$pdf = Mage::getModel('sales/order_pdf_invoice')->getPdf($invoicesSet);
$file = $pdf->render();
$senderName = Mage::getStoreConfig('trans_email/ident_support/name');
$senderEmail = Mage::getStoreConfig('trans_email/ident_support/email');
$sender = array('name' => $senderName, 'email' => $senderEmail);
$templateId = 'sales_email_order_template';
$emailTemplate = Mage::getModel('core/email_template')->loadByCode($templateId);
$vars = array('user_name' => 'some user name', 'product_name' => 'some product name');
$emailTemplate->getProcessedTemplate($vars);
$emailTemplate->setSenderEmail($senderEmail);
$emailTemplate->setSenderName($senderName);
$attachment = $emailTemplate->getMail()->createAttachment($file);
$attachment->type = 'application/pdf';
$attachment->filename = 'invoice.pdf';
$res = $emailTemplate->sendTransactional($templateId, $sender, 'user@example.com', "Admin", $vars);
About $vars variable – in this one you can put everything which is set inside email template as variables.

Looks like it can be used, but where does this code go?