Some tricks that all work, yet which one is best depends on your scene:
1. Level of detail + culling
Grass that is right next to the camera is drawn with every leaf intact, grass that is further away is instead just a quad with a few shader tricks to make it look like that. Even further away, the grass is completely removed, yet you can see the ground texture, which looks somewhat like grass if you squint (or are far enough away).
Then I implemented something like this (just not as awesome)
http://www.youtube.com/watch?v=pqt3KFkdpqcYou can use the H3DNodeFlags and MaterialFlags for this. To make a quick check if this works in your setup at all, just flag 'NoDraw' for every entity that is far enough away from a cube around your camera every x Frames. You can make it pretty later on.
2. Batching
In my case, I just joined a bunch of quads to have patches of grass, instead of single leafs. If your scene is small and static, you could even make all grass in your scene a single batch. To test this, I would suggest to just add multiple grass elements together in your favorite 3D model program so you have patches of grass that you can place around the scene. This could then later be dynamic and such.
3. Shaders
I can't find the video anymore, but it is possible to make a shader that looks like waving grass on flat surfaces. It is really an awesome concept, yet the optical illusion only works as long as you look at your scene from the top. From the side, it looks pretty weird.
I think it was on the Irrlicht forums somewhere... There was a Windows-Executable Demo for this. Sorry I can't help you more on this.
[Edit]
Found it
http://irrlicht.sourceforge.net/forum/v ... hp?t=24794