I feel bad writing a separate answer for merely an extension to @NateFerrero's answer, but I don't feel editing his answer is appropriate either, so please upvote @NateFerrero if this answer was useful to you.
tl;dr—For those who wish to use block comments inside their heredoc...
I mainly needed Javascript heredocs to store a block of CSS, e.g.
var css = heredoc(function() {/*
    /**
     * Nuke rounded corners.
     */
    body div {
        border-top-left-radius: 0 !important;
        border-top-right-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
        border-bottom-left-radius: 0 !important;
    }
*/});
As you can see however, I like to comment my CSS, and unfortunately (as hinted by the syntax highlighting) the first */ ends the overall comment, breaking the heredoc.
For this specific purpose (CSS), my workaround was to add
.replace(/(\/\*[\s\S]*?\*) \//g, '$1/')
to the chain inside @NateFerrero's heredoc; in complete form:
function heredoc (f) {
    return f.toString().match(/\/\*\s*([\s\S]*?)\s*\*\//m)[1].replace(/(\/\*[\s\S]*?\*) \//g, '$1/');
};
and use it by adding a space between the * and / for "inner" block comments, like so:
var css = heredoc(function() {/*
    /**
     * Nuke rounded corners.
     * /
    body div {
        border-top-left-radius: 0 !important;
        border-top-right-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
        border-bottom-left-radius: 0 !important;
    }
*/});
The replace simply finds /* ... * / and removes the space to make /* ... */, thereby preserving the heredoc until called.
You can of course remove the comments altogether using
.replace(/\/\*[\s\S]*?\* \//g, '')
You can also support // comments if you add them to the chain:
.replace(/^\s*\/\/.*$/mg, '')
Also, you can do something other than the single space between * and /, like a -:
    /**
     * Nuke rounded corners.
     *-/
if you just update the regex appropriately:
.replace(/(\/\*[\s\S]*?\*)-\//g, '$1/')
                          ^
Or maybe you'd like an arbitrary amount of whitespace instead of a single space?
.replace(/(\/\*[\s\S]*?\*)\s+\//g, '$1/')
                          ^^^