First off, gtmattz idea is pretty good - might take a little longer than some things, but MUCH MUCH less work for the player.
As to the walls and floors idea... eh, you could just build WALLS and then have your tower on top of that. The only thing that would cause problems with would be magma workshops.
And no, I didn't mean building around it (though you could do that, too) - you said you'd have to channel above it to let it rain, so I was assuming it had a roof above it. Let me finish what I was talking about:
magma z-level:
++++++++++
+++~~~~+++
++~~~~~~++
+~~~~~~~~+
+~~~~~~~~+
++~~~~~~++
+++~~~~+++
++++++++++
magma + 1 z-level:
0000000000
000++++000
00++++++00
+++++++++0
0++++++++0
00++++++00
000++++000
0000000000
So, basically, you mine out the area directly above the magma, but you don't channel it yet (if this is the surface, that's already done for you).
Then, you channel only the squares farthest from you access point, and drop 1 bucket of water down each one:
magma + 1 z-level:
0000000000
000++++000
00++++++00
++++++++.0
0+++++++.0
00++++++00
000++++000
0000000000
Then you do the next one:
magma + 1 z-level:
0000000000
000++++000
00+++++.00
+++++++..0
0++++++..0
00+++++.00
000++++000
0000000000
Etc, until it's done. The advantage here is that the imps or whatever have almost no chance to see you, much less shoot at you, as there is never more than a 1-square wide area to see up, and even then, they shouldn't be able to shoot at you because you'd have cover from the floor due to the number of z-levels between you.... unless they get out of the magma, of course, but if you've got that area walled off, you shouldn't have to worry about that.
It's a lot of micromanagement for the player, but it takes the least in-game time, dwarf labor, and water of any method I can think of.
If you don't mind waiting a few seasons, gtmattz suggestion would certainly be the easiest and simplest, though you might have to build a cistern instead of excavate it if you are near the surface (and deconstructing those takes FOREVER
).
Edit: if you wanted to leave more of the level above intact than channelling the whole floor, you could punch a few holes and drop water down them until they get all the surrounding squares. If you do it in an order similar to what I described above, it could be just as effective in terms of protecting your guys (maybe even a bit better), but it would take longer, use more water (as some would end up evaporating) and possibly drop a few stones down the magma pipe (say if the dumped water moved diagonally before all the horizontals had been done).
example, with numbers of which spots to channel in which order:
magma + 1 z-level:
0000000000
000++3+000
00++++++00
++7+5+++10
0+++++2++0
00+6++++00
000++4+000
0000000000
Something like that would do it and only punch a few holes.