GUI Button using .png image?

I want to create a GUI button with a .png image I imported to my game assets folder. It is 100x30.

If you're using OnGUI for this, you can either make a direct texture reference in your script, and use that value in the GUI.Button command:

var btnTexture : Texture;
function OnGUI() {
    if (GUI.Button(Rect(10,10,50,50),btnTexture)) {
        Debug.Log("Clicked the button!");
    }
}

Or, you need to create a custom GUI Style, to use with it, and drag your imported png texture into the appropriate "background" slots in the Style's inspector properties (eg, under the "Normal", "Hover" and "Active" slots). Then use that Style for the button:

var customGuiStyle : GUIStyle;

function OnGUI() {
    GUILayout.Button ("I am a custom-styled Button", customGuiStyle);
}