How do I play a sound when the player hovers over a button?

Title describes it pretty well. Is it possible?

Are you talking GUI button with a mouse, or the actual player touching something that resembles a button

If your talking about GUI Buttons, then you should use something like this:

var clip1 : AudioClip;

function Start () {
	gameObject.AddComponent ("AudioSource");
}

function OnGUI () {
    GUILayout.Button (GUIContent ("Play Game", "Button1"));
    
    if (Event.current.type == EventType.Repaint) {
        if (GUI.tooltip != "")
            SendMessage (GUI.tooltip + "OnMouseOver", SendMessageOptions.DontRequireReceiver);
    }
}

function Button1OnMouseOver () {
    audio.clip = clip1;
	audio.Play();
    
}

if your talking about a real button, then you should use something like this

var hitsound : AudioClip;

function OnTriggerEnter (hit : Collider) {
	if (hit.gameObject.tag == "Player") {
		if (hitsound)
			AudioSource.PlayClipAtPoint(hitsound, transform.position);	
	}
}

with that option, you should create a cube or some other object above it, delete the mesh renderer or disable it, and enable the istrigger option on the collider, and then you should be set (just remember to set the variable for the audio clip!!!)