Q: Can you turn on / off LEDs from a webpage (javascript) via a microcontroller (arduino)? I would like to use an Arduino microcontroller (with whatever shield necessary) to control LEDs.  My challenge is how to get users to interact with a javascript-driven webpage to send a signal to the microcontroller to blink an LED.  

A: The software could combine the arduino examples blink with webserver. 
The hardware to run the web server on the arduino would be either the Ethernet or WiFi shield. Alternatively, you may want to run the server on another machine and use the USB serial link from that machine to the arduino to control whether the led is on.
The web server could set a variable when a url is posted to, and that variable could determine whether or not the blinking occurs. Ask at stack exchange or google for the javascript side to use  ajax to post a value to a url when the user does something, or use a simple form with checkboxes to start with.

A: 
javascript-driven webpage to send a signal to the microcontroller to blink an LED

Assuming you want the outside (webserver) to contact your Arduino when an user interaction occurs - and NOT just poll for state changes as an earlier answer explains.
You need your Arduino and an Ethernet shield configured as a "webserver" to answer incoming requests and blink your LED when appropriate. You also need to defeat your local NAT/Firewall with a DMZ or port-forwarding (so the Arduino can be reached from the outside world).
On the outside (website), on your interaction page (that is, the page the web user reaches and should make your Arduino blink) - add the simple IMG tag with your Arduino IP and URL string. The web user's browser will attempt to fetch the IMG and tickle your Arduino, which will then blink. Ditto with javascript adding inline document.write of an IMG tag as needed.
Far more efficient to simply host the webpage on the Ardiuno since it will be accepting incoming traffic anyways.

A: I would try using Xively
https://xively.com/dev/tutorials/arduino_wi-fi/
You could have the Arduino running as a server, but that would require a static ip and some port-forwarding to get the Arduino out on the web so that your webpage could POST to it. (By the way I find using GET is simpler than POST for small amount of data.)
Xively is polling based, so your Arduino can be behind a firewall.
