Yes, there is a [cancel this shift] button inside each volunteer profile.
When a volunteer cancels his/her shift, your signup page will automatically (and immediately) update the number of spots available to reflect the cancellation. The volunteer will also be removed from that shift inside your job and shift summary (under Volunteers > Report). You can also activate cancellation notifications under Events > Your Events > Event Detail. These will be in the form of an email that is sent to the administrator of your choosing whenever a volunteer cancels one or more shifts.
Alternatively, you can turn this [cancel] option off under Events > Your Events > Event Detail. This means that your volunteers will not have the option to cancel their shifts from within their profiles.