Xindy supports both Finnish and Estonian. You didn't provide example, so there is one, assuming that you use utf8 encoding:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[finnish]{babel}
\usepackage[utf8]{inputenc}
\usepackage[texindy]{imakeidx}
\makeindex
\begin{document}
Hello world
\index{jällivaara}
\index{porvoo}
\index{kirjakieltä}
\index{sanota}
\index{vanhaa}
\printindex
\end{document}
Index words are random words from wikipedia, I have no idea what they mean.
Index can be processed with command:
texindy -M lang/finnish/utf8 -L finnish finnish.idx
For Estonian, it would be
texindy -M lang/estonian/utf8 -L estonian finnish.idx
Correct way would be to call xindy with
texindy -C utf8 -L finnish finish.idx
option -C means input encoding. But it seems there is a bug and the compilation fails with error message. So you need to directly load the module for encoding with lang/finnish/utf8.
As Egreg said, you can alternatively run texindy directly from pdflatex if you modify
\makeindex
to
\makeindex[options={-M lang/finnish/utf8 -L finnish}]
and call
pdflatex --shell-escape finnish.tex
to call texindy automatically.