Page.Request.Browser.EcmaScriptVersion will indicate what ASP.NET thinks is true. This assumes that the BrowserCaps are correct. It does give you a first pass indication which is probably pretty close.
EDIT: I initially misunderstood the question (enabled vs. supported). You could use the BrowserCaps server side to weed out those UserAgents that don't support JavaScript. Then use one line of script on each request to determine if it is enabled via cookie:
// let the server know JavaScript is enabled via session cookie
document.cookie = "js=1; path=/";
Then detect existence server-side:
HttpCookie cookie = HttpContext.Current.Request.Cookies.Get("js");
bool js = (cookie != null) && (cookie.Value == "1");
Once they close the browser this cookie will go away.