Honestly, basic voxel meshes border on trivial, in the simplest case all you need to do is copy-paste some open source code for marching cubes, and perhaps adapt it a slight bit to whatever data format you're using.
As for performance, they can be fast, very fast, consider that in Minecraft, in the worst case, the meshes are regenerated 20 times a second in the worst case, and besides, due to the fact that they can be modified, the chunks are small, and bigger meshes = more performance, because you can optimize vertice order to be more cache friendly, you can render them in less draw calls, and well, you get the idea.
The biggest problem is that you probably want LoD, and transitioning between levels of details is much more than a trivial algorithm, though it's still been done, documented, and has tables for all the cases that you could freely use(
dual marching cubes).
That said, marching cubes result in tons of triangles, many of which are not necessary, if you're good at 3D math, you could probably find some articles on mesh decimation and implement that. Still, with big-ish chunks, and/or not a lot of voxels used(say, only used for caves, arches, etc.), performance should not be a huge problem.
As for how to use them, you could always combine them with the heightmap based terrain - treat above ground as empty unless specified for voxel meshing purposes, and below as ground unless specified, and just cut holes in the heightmap terrain. As far as I'm concerned, marching cubes produced meshes always contain the midpoints of the grid for "full" blocks, so you could just render one voxel thick outline around the voxel-enabled sections, and render the terrain grid halfway into it(say, if voxel/heightmap grid is 20cm, render the edges of heightmap terrain 10cm inwards)
Sorry if I'm being a bother, just wanted to say my perspective on this, being both a voxel and Morrowind fan.