_An addition (more sweet code) to other answers here._

## Template Name

To just get the current **page template** name, use the following line.

    is_page() AND print get_page_template_slug( get_queried_object_id() );


## File Name

When you just want to echo the **current template file name**, go with the following

    <?php
    ! defined( 'ABSPATH' ) AND exit;
    /** Plugin Name: Get Template file name */
    function wpse10537_get_template_name( $file )
    {
        static $name;
        if ( 'template_include' === current_filter() )
        {
                $name = basename( $file );
            return $file;
        }
    
        // Return static var on echo call outside of filter
        if (
        	current_user_can( 'manage_options' )
    		AND defined( 'WP_DEBUG' )
    		AND WP_DEBUG 
    	)
        	return print $name;
    }
    add_action( 'template_include', 'wpse10537_get_template_name' );

<sup>_This plugin can run as MU-Plugin._</sup>

You can then simply call `wpse10537_get_template_name()` at any point (in for example a theme template). This avoids cluttering the global namespace.