In a large bowl, combine sliced onions, minced garlic, grated ginger, ground cumin, paprika, ground coriander, ground cinnamon, ground allspice, cayenne pepper, and olive oil. Mix well.
Place the salmon fillets in the bowl and coat with the spice mixture.
Cover the bowl with plastic wrap and marinate in the refrigerator for at least 1 hour.
Preheat the oven to 375°F (190°C).
In a large oven-safe skillet or tagine, arrange the marinated salmon fillets in a single layer.
Pour the canned diced tomatoes over the salmon.
Drizzle the fresh lemon juice over the salmon and tomatoes.
Season with salt and pepper to taste.
Bake in the preheated oven for 25-30 minutes, or until the salmon is cooked through.
Sprinkle with chopped cilantro leaves before serving.