Found this when looking to separate the last argument from all the previous one(s). Whilst some of the answers do get the last argument, they're not much help if you need all the other args as well. This works much better:
heads=${@:1:$(($# - 1))}
tail=${@:$#}
Note that this is bash-only.