Obviously it's simple when you know how to do it but it's hard to find on Google. I gave up after seeing a few advices like "use HTML element" or "read documentation". Thing is, I always start with reading documentation. The final resort is usually reading the source which might be a bit more time consuming but always gives definitive answer.
The following solution has been tested in Typo3 version 4.6.4. It should work fine elsewhere. Any feedback welcome, feel free to drop a line in the comments saying "version x.x.x works" or "version x.x.x doesn't work".
Getting to the subject, in order to add form support to RTE in Typo3 you will need to add some TypoScript to your page TSconfig and TypoScript template. The former is to make sure that content is properly saved in the database, the latter to avoid escaping tags in the frontend.
Let's start with page TSconfig:
allowTags := addToList(form, fieldset, input, select, option, label)
allowTagsOutside := addToList(form, fieldset, input, select, option, label)
denyTags := removeFromList(form, fieldset, input, select, option, label)
allowTags < RTE.default.proc.allowTags
Feel free to add more tags if you need them.
Now we need to get the frontend sorted. This should go to your TypoScript template:
It's a good idea to make sure that the lists of tags from TSconfig and TypoScript template are matching up. Enjoy.