>> Flash is a good way but I heard that it can only play .flv files. (Correct me if I'm wrong)
Yes, Flash only plays back the FLV format, and you need Flash Streaming Media Server for it to be played back as a truly streaming file.
>> So, what is the best way to do streaming MPEG and AVI files on the website with all browsers & OSs friendly?
Short answer: You need a streaming media server, and that requires some compromises, some technical skill and strong control over the Web server.
Ffmpg is one option that's free, but it is very complicated to use as a streaming media server, especially because it has not native GUI.
Windows Media Services is a reasonable alternative that gives broad support across platforms and comes free with Windows Server 2003, but it is so poorly documented that you will likely find it as hard as ffmpg to use.
Apple's Quicktime Streaming Server has a open-source option, Darwin Streaming Server, that can be hacked up to run on *nix, but it only supports the MP4 standard, which prevents people who only use Windows Media Player users from seeing those streams. And that constitutes the majority of Web users.
Real Networks also offers Helix, which is an excellent option if you have money and want decent rights management. But it, too, requires a non-WMP player; while many users have Real Player, not all do.