About 15,000 people have taken part in a march against “Islamisation of the West” in the east German city of Dresden.
A large counter-demonstration of more than 5,000 people was also held. No major incidents were reported.
Dresden is the birthplace of a movement called “Patriotic Europeans Against the Islamisation of the West” (Pegida), which staged a big rally a week ago.
Chancellor Angela Merkel warned Germans not to be exploited by extremists.
“There’s freedom of assembly in Germany, but there’s no place for incitement and lies about people who come to us from other countries,” Mrs Merkel said in Berlin.
“Everyone [who attends] needs to be careful that they are not taken advantage of by the people who organise such events.”
In Monday’s march, protesters chanted Wir sind das Volk (we are the people) – a rallying cry used in the city in the weeks before the fall of the Berlin Wall 25 years ago.
One elderly man shouted: “I’m a pensioner. I only get a small pension but I have to pay for all these people (asylum seekers). No-one asked me!”
A woman who travelled 80km (50 miles) for the demonstration told the BBC: “I am not right wing, I’m not a Nazi. I am just worried for my country, for my granddaughter.”
Earlier, Justice Minister Heiko Maas called Pegida’s protests “a disgrace”. But the Eurosceptic party Alternativ fuer Deutschland (AfD) is sympathetic.
“Most of their demands are legitimate,” said Bernd Lucke, leader of AfD, which has campaigned for a tougher policy on immigration, as well as rejection of the euro.
In the western city of Cologne, about 15,000 people attended a demonstration on Sunday to promote tolerance and open-mindedness, under the motto: “You are Cologne – no Nazis here.”
Clutching German flags, candles and banners, thousands of people joined a demonstration ostensibly against the so-called Islamisation of Germany.
“No sharia law in Europe!” proclaimed one banner.
But it rapidly became clear that most here are protesting against high levels of immigration and asylum seekers.
A few years ago such scenes would have been inconceivable in this country. Many in Germany are ashamed and horrified – not just by the numbers at this demonstration but by support for right-wing groups elsewhere.
What has startled politicians, though, is that many in the crowds at Dresden are not extremists or neo-Nazis. As conservative politician Wolfgang Bosbach puts it, these are concerned mothers and pensioners.
The sheer numbers at recent demonstrations are forcing a public discussion around immigration. It’s a debate with which many feel deeply uncomfortable. But it’s a debate which many also say can no longer be ignored.
Immigration has become a hot topic in Germany this year, amid a surge in the numbers of asylum seekers, fuelled by the wars in Syria and Iraq. Germany takes in more asylum seekers than any other EU country.
Germany expects 200,000 asylum claims for 2014, up from 127,000 in 2013.
German media report that Pegida grew out of a Facebook group launched by Lutz Bachmann, 41, a chef-turned-graphic designer. He insists that he is not racist. He has admitted to past criminal convictions, including for drug-dealing. He says he spent two years in prison.
The AfD leader in Dresden, Frauke Petry, said Pegida “is protesting against inadequate legislation on asylum rights – they are also demanding that German law be applied against law-breakers, and they are opposing religious extremism”.
The centre-left Social Democrats (SPD) – in the ruling coalition with Mrs Merkel’s Christian Democrats – called Pegida’s organisers “Nazis in pinstripes”.
Police sources, quoted by the Spiegel online news website, said hundreds of Pegida activists in Dresden were members of two hooligan groups regarded as far-right.
Minister Maas said Pegida must be “unmasked”, and he called for a “broad counter-movement embracing civil society and all political parties”.