Suppose that you deployed a contract, but your transaction got canceled due to an out-of-gas error. Is there any way to re-deploy the contract so that it takes the same address?
A contract address is made by combining the address creating the contract with the nonce of that address. (See here for the specifics, and some interesting tricks you can play with this.) Any transaction that is included in the blockchain increments that nonce, even if it ends with an out-of-gas error. So you can never use the same address+nonce combination again, and that means you'll never have another chance to create the contract at that address.
If this matters to you one thing to consider in future might be creating the contract with another contract. That way the nonce used will be the nonce of the creator contract instead of the address of the transaction that triggers it, and if the contract creation transaction fails, that should revert the whole thing and leave the contract's nonce unaffected. That way you can retry later with more gas and you should get the address you originally expected. (I haven't tried this but logically I think it should work.)