User input function keep looping until valid filename entered
is this the proper way to accomplish this?

Yes; looping is the best approach for this type of functionality (see e.g. Asking the user for input until they give a valid response).


are there other errors that could get triggered that I should deal with?

There are reasons other than not finding the file that opening and reading the file could fail; in this case, I would probably catch the more general OSError to handle all of these. I would also restructure slightly to minimise the code in the try block:
try:
    with open(filename) as f:  # note that 'r' is the default mode
        my_file = f.read()
except OSError:
    print('Error accessing file. Check file name and path and try again.')
else:
    return my_file


A few other minor notes:

You should consider adding a docstring, explaining what the function does and how to use it;
Currently, the file_type is only used for display purposes - consider adding checks that the user has selected an appropriate file;
Returning the string content of the file means you have to read the whole thing into memory up-front, which may not be ideal with larger files; and
I would use str.format rather than + concatenation, and just pass the text straight to input as the prompt argument rather than having a separate print call.