Paint cost calculator
Functions are described in the Python tutorial - they are separate blocks of code which take defined inputs (argument values) and provide defined outputs (return values), and usually have a descriptive comment ("docstring") at the top:

def function(argument):
    """A simple function to double things."""
    output = argument * 2
    return output


As to how you can proceed on refactoring your code to use these functions, I suggest you take the following steps:

Step 1: Abstract repeated code into standalone functions:

def get_float_input(prompt, min_, max_):
    """Take valid float input between min_ and max_ from the user."""
    ...

room_width = get_float_input("Enter the room width, it must be between 1m-25m: ", 1, 25)
room_height = get_float_input("Enter the room height, it must be between 2m-6m: ", 2, 6)


You can use this community wiki to help you write the functionget_float_input.

Step 2: Use dictionaries to simplify multiple elifs, and continue to factor out repeats:

def get_str_input(prompt, choices):
    """Take valid string input from the user from items in choices."""
    ...

prompt = "Please choose from a selection of paints: 'Luxury', 'Standard', or 'Economy'."
paint_factor = {"Luxury": 1.45, "Standard": 1.0, "Economy": 0.45}
room_paint = room_total * paint_factor[get_str_input(prompt, paint_factor)]

prompt = "Would you like to use an undercoat? Y/N: "
undercoats = {"Y": 0.5, "N": 0}
room_undercoat = room_total * undercoats[get_str_input(prompt, undercoats)]


Step 3: Organise whole thing into sensible sub-functions that each do one thing:

def room_size():
    """Calculate the size of a room from user input."""
    width = get_float_input(...)
    height = get_float_input(...)
    return width * height

def paint_cost(size):
    """Calculate the cost of paint for a room."""
    prompt = "..."
    paint_factor = {...}
    return size * paint_factor[get_str_input(prompt, paint_factor)]

def undercoat_cost(size):
    """Calculate the cost of undercoat for a room."""
    prompt = "..."
    undercoats = {...}
    return size * undercoats[get_str_input(prompt, undercoats)]


Step 4: Write one function to bring the rest together:

def main():
    size = room_size()
    total_cost = paint_cost(size) + undercoat_cost(size)
    print("The total cost of painting this room is £{0:.2f}".format(total_cost))


Step 5: Add a call at the bottom of your script to set the whole thing off:

if __name__ == "__main__":
    main()


(see this question if you don't know what that comparison does).

Throughout: Follow the Python style guide, PEP-0008.