Whilst it's fun to see all the complex answers, mine's a bit more draconian... you probably won't find a faster routine for doing this. It exploits that objects are always passed by reference in JavaScript, even during assignment.
function nest(arr) {
for (var obj = {}, ptr = obj, i = 0, j = arr.length; i < j; i++)
ptr = (ptr[arr[i]] = {});
return obj;
}
No recursive calls, no fancy mapping/each, no nested function calls/multiple functions, no long-winded objectAssign, no foreach or other methods that won't work in legacy browsers. Just a simple FOR loop and assignment. Should work all the way back to IE5.