Preheat oven to 375 degrees. Heat the oil and butter over medium-low heat in a large ovenproof skillet. Add onion, and cook until very soft, about 15 minutes. Stir in the potatoes and shallots and half the rosemary; season with salt and pepper. Raise heat to medium-high, and cook until potatoes begin to brown, about 10 minutes. Remove from heat, and add remaining rosemary and the stock.
Cover skillet, and transfer to the oven; cook until potatoes are fork-tender, about 10 minutes (timing will vary with size of potatoes). Uncover, and cook until liquid is reduced, about 20 minutes. Sprinkle with chopped rosemary. Serve warm.
