It doesn't look like metaflac can do that directly. The following seems to work for me on my linux box:
CODE
metaflac --remove --except-block-type=VORBIS_COMMENT foo.flac
metaflac --show-tag GENRE --show-tag ARTIST --show-tag ALBUM --show-tag TRACKNUMBER foo.flac | metaflac --remove-all-tags --import-tags-from=- foo.flac
You can add SEEKTABLE, APPLICATION, and PADDING to the first command if you want to preserve those blocks. You can also add '--show-tag' options for every other tag you want to preserve.
Note that this won't work with multi-line tags (like CUESHEET) if you want to preserve them. For those you'll have to do something like the following before removing all the other tags and metadata:
CODE
metaflac --show-tag CUESHEET foo.flac > foo.cue
Then edit foo.cue to remove 'CUESHEET=' from the beginning. After you have removed all other tags and metadata, run this:
CODE
metaflac --set-tag-from-file=CUESHEET=foo.cue