First, you need to make sure the new disk size is equal or larger than the original one.
Duplicate the disk partition (x86 only):
fdisk -W /var/tmp/rpool-fdisk /dev/rdsk/c1t0d0p0
fdisk -F /var/tmp/rpool-fdisk /dev/rdsk/c1t1d0p0
Duplicate the label (both x86 and SPARC)
prtvtoc /dev/rdsk/c1t0d0s0 | fmthard -s - /dev/rdsk/c1t1d0s0
Mirror the root pool (both x86 and SPARC):
zpool attach -f rpool c1t1d0s0
Install the GRUB boot loader (x86 only):
installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t1d0s0
Install the boot loader (SPARC only):
installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t1d0s0
Set the BIOS (x86) or the OpenBOOT prom (SPARC) to have the new disk bootable.
In the latter case (SPARC), that should be something like:
eeprom "boot-device=disk1 disk2"
Make sure the ZFS resilvering is completed before rebooting. Use the
zpool status rpool command to monitor resilvering.