You can bail out of a function early with return. For functions that return values, you can also specify a return value. This is very useful if you know the function is going to return a bad value and you know what it should be returning.
finish will continue execution until the current function ends and then gdb will break back in again. until will resume execution and break on the next instruction after where until was invoked. This is useful (as seen above) for letting a loop finish.