I was searching for this very topic, didn't find an answer so I messed around for a bit, and read the Parting the Sea tutorial.
Here's how I did it, create a disc object to use as your water. Open the disc's internal node network by right-clicking it in the node network screen, and add a new water shader and image map shader. Link the water shader to the disc, link the image map shader to the water shader's input node.
Using an outside graphics package like Gimp, make an image of a swirl in black and white, mine was 800x800 pixels. The harder the edges of the swirl, the more abrupt the whirlpool edges will appear, smooth gradients look more natural. Save as a tiff.
In the image map shader options import the swirl image.
This part can be finicky, choose projection type: through camera, and create a new camera to serve as the projector for the swirl image. By positioning that camera over the disc, you can place your whirlpool. Change the rotation of the projection camera to get it to point straight down.
You will need to increase the displacement multiplier in the image map shader options to get the whirl deep enough, or set it negative if your whirlpool is rising out of the water instead of sinking down.