Example from real life:
You go to a restaurant and order a sandwich and a drink. A bit later, you receive the sandwich and drink. In other words, you gave the restaurant input (your order) and it in turn gave an output (sandwich and drink).
The process of the restaurant outputting would be what return does. In this analogy, you are the caller of the function, and the restaurant is the function.
function Restaurant:OrderFood(orderInfo)
-- Do some stuff to figure out the actual food
return food
end
-- You, the customer:
local myFood = Restaurant:OrderFood("Sandwich", "Water")